Step * of Lemma term-induction

No Annotations
[opr:Type]. ∀[P:term(opr) ⟶ ℙ].
  ((∀v:{v:varname()| ¬(v nullvar() ∈ varname())} P[varterm(v)])
   (∀bts:bound-term(opr) List. ((∀bt:bound-term(opr). ((bt ∈ bts)  P[snd(bt)]))  (∀f:opr. P[mkterm(f;bts)])))
   {∀t:term(opr). P[t]})
BY
(Unfold `guard` 0
   THEN Intros
   THEN RenameVar `v' 3
   THEN RenameVar `m' 4
   THEN (InstLemma `term-ind_wf` [⌜opr⌝;⌜P⌝]⋅ THENA Auto)
   THEN UseWitness ⌜term-ind(x.v x;f,bts,r.m bts bt,x. let i,_,_ in i) f;t)⌝⋅
   THEN Auto) }


Latex:


Latex:
No  Annotations
\mforall{}[opr:Type].  \mforall{}[P:term(opr)  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}v:\{v:varname()|  \mneg{}(v  =  nullvar())\}  .  P[varterm(v)])
    {}\mRightarrow{}  (\mforall{}bts:bound-term(opr)  List
                ((\mforall{}bt:bound-term(opr).  ((bt  \mmember{}  bts)  {}\mRightarrow{}  P[snd(bt)]))  {}\mRightarrow{}  (\mforall{}f:opr.  P[mkterm(f;bts)])))
    {}\mRightarrow{}  \{\mforall{}t:term(opr).  P[t]\})


By


Latex:
(Unfold  `guard`  0
  THEN  Intros
  THEN  RenameVar  `v'  3
  THEN  RenameVar  `m'  4
  THEN  (InstLemma  `term-ind\_wf`  [\mkleeneopen{}opr\mkleeneclose{};\mkleeneopen{}P\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  UseWitness  \mkleeneopen{}term-ind(x.v  x;f,bts,r.m  bts  (\mlambda{}bt,x.  let  i,$_{}$,$_\mbackslash{}ff\000C7b}$  =  x  in  r  i)  f;t)\mkleeneclose{}\mcdot{}
  THEN  Auto)




Home Index