Step
*
of Lemma
callbyvalueall_seq-seq
∀[L,G,F:Top]. ∀[n,m:ℕ]. (callbyvalueall-seq(L;G;F;n;m) ~ callbyvalueall_seq(L;G;λg.(g F);n;m))
BY
{ (Auto
THEN (Decide n ≤ m THENA Auto)
THEN Try (Complete ((RecUnfold `callbyvalueall-seq` 0 THEN RecUnfold `callbyvalueall_seq` 0 THEN AutoSplit)))
THEN (Assert ⌜∃k:ℕ. (m = (n + k) ∈ ℤ)⌝⋅ THENA (InstConcl [⌜m - n⌝]⋅ THEN Auto'))
THEN D (-1)
THEN (HypSubst' (-1) 0 THENA Auto)
THEN ThinVar `m'
THEN MoveToConcl (-2)
THEN MoveToConcl (-3)
THEN NatInd (-1)
THEN Auto
THEN RecUnfold `callbyvalueall_seq` 0
THEN RecUnfold `callbyvalueall-seq` 0
THEN AutoSplit
THEN MemCD
THEN Try (Complete (Auto))
THEN (InstHyp [⌜λf.(G f v)⌝;⌜n + 1⌝] (-5)⋅ THENA Auto)
THEN Subst ⌜(n + 1) + (k - 1) ~ n + k⌝ (-1)⋅
THEN Auto) }
Latex:
Latex:
\mforall{}[L,G,F:Top]. \mforall{}[n,m:\mBbbN{}]. (callbyvalueall-seq(L;G;F;n;m) \msim{} callbyvalueall\_seq(L;G;\mlambda{}g.(g F);n;m))
By
Latex:
(Auto
THEN (Decide n \mleq{} m THENA Auto)
THEN Try (Complete ((RecUnfold `callbyvalueall-seq` 0
THEN RecUnfold `callbyvalueall\_seq` 0
THEN AutoSplit)))
THEN (Assert \mkleeneopen{}\mexists{}k:\mBbbN{}. (m = (n + k))\mkleeneclose{}\mcdot{} THENA (InstConcl [\mkleeneopen{}m - n\mkleeneclose{}]\mcdot{} THEN Auto'))
THEN D (-1)
THEN (HypSubst' (-1) 0 THENA Auto)
THEN ThinVar `m'
THEN MoveToConcl (-2)
THEN MoveToConcl (-3)
THEN NatInd (-1)
THEN Auto
THEN RecUnfold `callbyvalueall\_seq` 0
THEN RecUnfold `callbyvalueall-seq` 0
THEN AutoSplit
THEN MemCD
THEN Try (Complete (Auto))
THEN (InstHyp [\mkleeneopen{}\mlambda{}f.(G f v)\mkleeneclose{};\mkleeneopen{}n + 1\mkleeneclose{}] (-5)\mcdot{} THENA Auto)
THEN Subst \mkleeneopen{}(n + 1) + (k - 1) \msim{} n + k\mkleeneclose{} (-1)\mcdot{}
THEN Auto)
Home
Index