Step * of Lemma term-cases

No Annotations
[opr:Type]
  ∀t:term(opr)
    ((∃v:varname(). ((¬(v nullvar() ∈ varname())) ∧ (t varterm(v) ∈ term(opr))))
    ∨ (∃f:opr. ∃bts:{bt:bound-term(opr)| bound-term-size(bt) < term-size(t)}  List. (t mkterm(f;bts) ∈ term(opr))))
BY
(Auto
   THEN (InstLemma `term-ext` [⌜opr⌝]⋅ THENA Auto)
   THEN (GenConcl ⌜a ∈ coterm-fun(opr;term(opr))⌝⋅ THENA Auto)
   THEN ThinVar `t'
   THEN (Assert a ∈ term(opr) BY
               Auto)
   THEN (D -2 THENL [OrLeft; (D -2 THEN OrRight)])
   THEN Auto
   THEN Fold `mkterm` 0
   THEN RenameVar `f' (-3)
   THEN RenameVar `bts' (-2)
   THEN InstConcl [⌜f⌝;⌜bts⌝]⋅
   THEN Auto
   THEN Reduce 0
   THEN Fold `bound-term-size` 0) }

1
1. opr Type
2. term(opr) ≡ coterm-fun(opr;term(opr))
3. opr
4. bts (varname() List × term(opr)) List
5. inr <f, bts>  ∈ term(opr)
6. bts ∈ {a:bound-term(opr)| (a ∈ bts)}  List
7. bts bts ∈ ({a:bound-term(opr)| (a ∈ bts)}  List)
8. bound-term(opr)
9. (a ∈ bts)
⊢ bound-term-size(a) < + Σ(bound-term-size(bt) bt ∈ bts)


Latex:


Latex:
No  Annotations
\mforall{}[opr:Type]
    \mforall{}t:term(opr)
        ((\mexists{}v:varname().  ((\mneg{}(v  =  nullvar()))  \mwedge{}  (t  =  varterm(v))))
        \mvee{}  (\mexists{}f:opr
                \mexists{}bts:\{bt:bound-term(opr)|  bound-term-size(bt)  <  term-size(t)\}    List.  (t  =  mkterm(f;bts))))


By


Latex:
(Auto
  THEN  (InstLemma  `term-ext`  [\mkleeneopen{}opr\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (GenConcl  \mkleeneopen{}t  =  a\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  ThinVar  `t'
  THEN  (Assert  a  \mmember{}  term(opr)  BY
                          Auto)
  THEN  (D  -2  THENL  [OrLeft;  (D  -2  THEN  OrRight)])
  THEN  Auto
  THEN  Fold  `mkterm`  0
  THEN  RenameVar  `f'  (-3)
  THEN  RenameVar  `bts'  (-2)
  THEN  InstConcl  [\mkleeneopen{}f\mkleeneclose{};\mkleeneopen{}bts\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  Reduce  0
  THEN  Fold  `bound-term-size`  0)




Home Index