============ after processor `data_invariant_instrumenter` ================
[variant verification]
pub fun Trafo::dummy_need_signer_use_in_move($t0|account: signer): address {
var $t1: address
0: assume WellFormed($t0)
1: trace_local[account]($t0)
# >> opaque call: $t1 := Signer::address_of($t0)
2: nop
3: assume Eq
($t1, Signer::spec_address_of($t0))
4: assume WellFormed($t1)
# << opaque call: $t1 := Signer::address_of($t0)
5: nop
6: trace_return[0]($t1)
7: label L1
8: return $t1
}
[variant verification]
pub fun Trafo::publish($t0|account: signer, $t1|x: u64) {
var $t2: Trafo::R
var $t3: num
0: assume WellFormed($t0)
1: assume WellFormed($t1)
2: assume forall $rsc: ResourceDomain(): WellFormed($rsc)
3: @0 := save_mem(Trafo::R)
4: trace_local[account]($t0)
5: trace_local[x]($t1)
6: $t2 := pack Trafo::R($t1)
7: move_to($t2, $t0) on_abort goto 13 with $t3
8: label L1
# VC: function does not abort under this condition at resource.move:14:7+26
9: assert Not(exists[@0](Trafo::addr$2[]($t0)))
# VC: post-condition does not hold at resource.move:15:7+24
10: assert exists(Trafo::addr$2($t0))
# VC: post-condition does not hold at resource.move:16:7+31
11: assert Eq(select Trafo::R.x(global(Trafo::addr$2($t0))), $t1)
12: return ()
13: label L2
# VC: abort not covered by any of the `aborts_if` clauses at resource.move:12:3+175
14: assert exists[@0](Trafo::addr$2[]($t0))
15: abort($t3)
}