Skip to content

Instantly share code, notes, and snippets.

@archbung
Created March 18, 2020 20:38
Show Gist options
  • Save archbung/a378a5b1b6505c55807adc4c1b9f5656 to your computer and use it in GitHub Desktop.
Save archbung/a378a5b1b6505c55807adc4c1b9f5656 to your computer and use it in GitHub Desktop.
theory Bug begin
builtins: multiset
rule Start: [ Fr(~x) ] --[ Start(<x,'1'>), C(x,'1'), IsFresh(x) ]-> [ A(x,'1') ]
rule Loop: [ A(x,n) ] --[ Loop(<x,n>), C(x,n) ]-> [ A(x,n) ]
rule Stop: [ A(x,n) ] --[ Stop(<x,n>), C(x,'1'+n) ]-> [ A(x,'1'+n) ]
lemma Blub [use_induction, reuse]:
"All x #i n. C(x,n)@i ==> (Ex #j u. IsFresh(u)@j & x = u)"
lemma Loop_before_Stop [use_induction]:
"All x #i #j. Stop(x) @ j & Loop(x) @ i ==> #i < #j"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment