Step * of Lemma proof-tree-induction

No Annotations
[Sequent,Rule:Type].
  ∀effect:(Sequent × Rule) ⟶ (Sequent List?)
    ∀[Q:proof-tree(Sequent;Rule;effect) ⟶ ℙ]
      ((∀s:Sequent. ∀r:Rule.  Q[proof-abort(s;r)] supposing ↑isr(effect <s, r>))
       (∀s:Sequent. ∀r:Rule.
            ∀L:proof-tree(Sequent;Rule;effect) List
              (∀pf∈L.Q[pf])  Q[make-proof-tree(s;r;L)] supposing ||L|| ||outl(effect <s, r>)|| ∈ ℤ 
            supposing ↑isl(effect <s, r>))
       (∀pf:proof-tree(Sequent;Rule;effect). Q[pf]))
BY
(Auto
   THEN All
   (Unfold `proof-tree`)⋅
   THEN InstLemma `W-induction` [⌜Sequent × Rule⌝;⌜λ2sr.case effect sr
                                                    of inl(subgoals) =>
                                                    ℕ||subgoals||
                                                    inr(x) =>
                                                    Void⌝;⌜Q⌝;⌜pf⌝]⋅
   THEN Auto
   THEN RepeatFor (MoveToConcl (-1))
   THEN (GenConclTerm ⌜effect a⌝⋅ THENA Auto)
   THEN -1
   THEN Reduce 0
   THEN All (Fold `proof-tree`)
   THEN -3
   THEN RenameVar `s' (-4)
   THEN RenameVar `r' (-3)
   THEN -2
   THEN Reduce 0
   THEN ∀h:hyp. (InstHyp [⌜s⌝;⌜r⌝h⋅ THENA Complete ((Auto THEN HypSubst' (-1) THEN Auto))) 
   THEN Auto) }

1
1. [Sequent] Type
2. [Rule] Type
3. effect (Sequent × Rule) ⟶ (Sequent List?)
4. [Q] proof-tree(Sequent;Rule;effect) ⟶ ℙ
5. ∀s:Sequent. ∀r:Rule.  Q[proof-abort(s;r)] supposing ↑isr(effect <s, r>)
6. ∀s:Sequent. ∀r:Rule.
     ∀L:proof-tree(Sequent;Rule;effect) List
       (∀pf∈L.Q[pf])  Q[make-proof-tree(s;r;L)] supposing ||L|| ||outl(effect <s, r>)|| ∈ ℤ 
     supposing ↑isl(effect <s, r>)
7. pf proof-tree(Sequent;Rule;effect)
8. Sequent
9. Rule
10. Sequent List
11. (effect <s, r>(inl x) ∈ (Sequent List?)
12. ∀L:proof-tree(Sequent;Rule;effect) List
      (∀pf∈L.Q[pf])  Q[make-proof-tree(s;r;L)] supposing ||L|| ||outl(effect <s, r>)|| ∈ ℤ
13. : ℕ||x|| ⟶ proof-tree(Sequent;Rule;effect)
14. ∀b:ℕ||x||. Q[f b]
⊢ Q[Wsup(<s, r>;f)]

2
1. [Sequent] Type
2. [Rule] Type
3. effect (Sequent × Rule) ⟶ (Sequent List?)
4. [Q] proof-tree(Sequent;Rule;effect) ⟶ ℙ
5. ∀s:Sequent. ∀r:Rule.  Q[proof-abort(s;r)] supposing ↑isr(effect <s, r>)
6. ∀s:Sequent. ∀r:Rule.
     ∀L:proof-tree(Sequent;Rule;effect) List
       (∀pf∈L.Q[pf])  Q[make-proof-tree(s;r;L)] supposing ||L|| ||outl(effect <s, r>)|| ∈ ℤ 
     supposing ↑isl(effect <s, r>)
7. pf proof-tree(Sequent;Rule;effect)
8. Sequent
9. Rule
10. Unit
11. (effect <s, r>(inr ) ∈ (Sequent List?)
12. Q[proof-abort(s;r)]
13. Void ⟶ proof-tree(Sequent;Rule;effect)
14. ∀b:Void. Q[f b]
⊢ Q[Wsup(<s, r>;f)]


Latex:


Latex:
No  Annotations
\mforall{}[Sequent,Rule:Type].
    \mforall{}effect:(Sequent  \mtimes{}  Rule)  {}\mrightarrow{}  (Sequent  List?)
        \mforall{}[Q:proof-tree(Sequent;Rule;effect)  {}\mrightarrow{}  \mBbbP{}]
            ((\mforall{}s:Sequent.  \mforall{}r:Rule.    Q[proof-abort(s;r)]  supposing  \muparrow{}isr(effect  <s,  r>))
            {}\mRightarrow{}  (\mforall{}s:Sequent.  \mforall{}r:Rule.
                        \mforall{}L:proof-tree(Sequent;Rule;effect)  List
                            (\mforall{}pf\mmember{}L.Q[pf])  {}\mRightarrow{}  Q[make-proof-tree(s;r;L)]  supposing  ||L||  =  ||outl(effect  <s,  r>)|| 
                        supposing  \muparrow{}isl(effect  <s,  r>))
            {}\mRightarrow{}  (\mforall{}pf:proof-tree(Sequent;Rule;effect).  Q[pf]))


By


Latex:
(Auto
  THEN  All
  (Unfold  `proof-tree`)\mcdot{}
  THEN  InstLemma  `W-induction`  [\mkleeneopen{}Sequent  \mtimes{}  Rule\mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}sr.case  effect  sr
                                                                                                    of  inl(subgoals)  =>
                                                                                                    \mBbbN{}||subgoals||
                                                                                                    |  inr(x)  =>
                                                                                                    Void\mkleeneclose{};\mkleeneopen{}Q\mkleeneclose{};\mkleeneopen{}pf\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  RepeatFor  2  (MoveToConcl  (-1))
  THEN  (GenConclTerm  \mkleeneopen{}effect  a\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  D  -1
  THEN  Reduce  0
  THEN  All  (Fold  `proof-tree`)
  THEN  D  -3
  THEN  RenameVar  `s'  (-4)
  THEN  RenameVar  `r'  (-3)
  THEN  D  -2
  THEN  Reduce  0
  THEN  \mforall{}h:hyp.  (InstHyp  [\mkleeneopen{}s\mkleeneclose{};\mkleeneopen{}r\mkleeneclose{}]  h\mcdot{}  THENA  Complete  ((Auto  THEN  HypSubst'  (-1)  0  THEN  Auto))) 
  THEN  Auto)




Home Index