Step
*
2
of Lemma
term-opr_functionality
1. opr : Type
2. t : term(opr)
3. t' : term(opr)
4. ¬↑isvarterm(t)
5. alpha-eq-terms(opr;t;t')
6. ∃f:opr. ∃bts:{bt:bound-term(opr)| bound-term-size(bt) < term-size(t)}  List. (t = mkterm(f;bts) ∈ term(opr))
⊢ term-opr(t) = term-opr(t') ∈ opr
BY
{ ((InstLemma `term-cases` [⌜opr⌝;⌜t'⌝]⋅ THENA Auto) THEN D -1 THEN ExRepD) }
1
1. opr : Type
2. t : term(opr)
3. t' : term(opr)
4. ¬↑isvarterm(t)
5. alpha-eq-terms(opr;t;t')
6. f : opr
7. bts : {bt:bound-term(opr)| bound-term-size(bt) < term-size(t)}  List
8. t = mkterm(f;bts) ∈ term(opr)
9. v : varname()
10. ¬(v = nullvar() ∈ varname())
11. t' = varterm(v) ∈ term(opr)
⊢ term-opr(t) = term-opr(t') ∈ opr
2
1. opr : Type
2. t : term(opr)
3. t' : term(opr)
4. ¬↑isvarterm(t)
5. alpha-eq-terms(opr;t;t')
6. f1 : opr
7. b1 : {bt:bound-term(opr)| bound-term-size(bt) < term-size(t)}  List
8. t = mkterm(f1;b1) ∈ term(opr)
9. f : opr
10. bts : {bt:bound-term(opr)| bound-term-size(bt) < term-size(t')}  List
11. t' = mkterm(f;bts) ∈ term(opr)
⊢ term-opr(t) = term-opr(t') ∈ opr
Latex:
Latex:
1.  opr  :  Type
2.  t  :  term(opr)
3.  t'  :  term(opr)
4.  \mneg{}\muparrow{}isvarterm(t)
5.  alpha-eq-terms(opr;t;t')
6.  \mexists{}f:opr.  \mexists{}bts:\{bt:bound-term(opr)|  bound-term-size(bt)  <  term-size(t)\}    List.  (t  =  mkterm(f;bts))
\mvdash{}  term-opr(t)  =  term-opr(t')
By
Latex:
((InstLemma  `term-cases`  [\mkleeneopen{}opr\mkleeneclose{};\mkleeneopen{}t'\mkleeneclose{}]\mcdot{}  THENA  Auto)  THEN  D  -1  THEN  ExRepD)
Home
Index