Step
*
2
of Lemma
proof-tree-induction
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. s : Sequent
9. r : Rule
10. y : Unit
11. (effect <s, r>) = (inr y ) ∈ (Sequent List?)
12. Q[proof-abort(s;r)]
13. f : Void ⟶ proof-tree(Sequent;Rule;effect)
14. ∀b:Void. Q[f b]
⊢ Q[Wsup(<s, r>f)]
BY
{ TACTIC:(NthHypEq (-3)
          THEN EqCD
          THEN Auto
          THEN Unfold `proof-abort` 0
          THEN RW (AddrC [3] (FoldTopC `Wsup`)) 0
          THEN Unfold `proof-tree` 0
          THEN EqCD
          THEN All (Fold `proof-tree`)
          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. s : Sequent
9. r : Rule
10. y : Unit
11. (effect <s, r>) = (inr y ) ∈ (Sequent List?)
12. Q[proof-abort(s;r)]
13. f : Void ⟶ proof-tree(Sequent;Rule;effect)
14. ∀b:Void. Q[f b]
⊢ f = (λx.x) ∈ (case effect <s, r> of inl(subgoals) => ℕ||subgoals|| | inr(x) => Void ⟶ proof-tree(Sequent;Rule;effect)\000C)
Latex:
Latex:
1.  [Sequent]  :  Type
2.  [Rule]  :  Type
3.  effect  :  (Sequent  \mtimes{}  Rule)  {}\mrightarrow{}  (Sequent  List?)
4.  [Q]  :  proof-tree(Sequent;Rule;effect)  {}\mrightarrow{}  \mBbbP{}
5.  \mforall{}s:Sequent.  \mforall{}r:Rule.    Q[proof-abort(s;r)]  supposing  \muparrow{}isr(effect  <s,  r>)
6.  \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>)
7.  pf  :  proof-tree(Sequent;Rule;effect)
8.  s  :  Sequent
9.  r  :  Rule
10.  y  :  Unit
11.  (effect  <s,  r>)  =  (inr  y  )
12.  Q[proof-abort(s;r)]
13.  f  :  Void  {}\mrightarrow{}  proof-tree(Sequent;Rule;effect)
14.  \mforall{}b:Void.  Q[f  b]
\mvdash{}  Q[Wsup(<s,  r>f)]
By
Latex:
TACTIC:(NthHypEq  (-3)
                THEN  EqCD
                THEN  Auto
                THEN  Unfold  `proof-abort`  0
                THEN  RW  (AddrC  [3]  (FoldTopC  `Wsup`))  0
                THEN  Unfold  `proof-tree`  0
                THEN  EqCD
                THEN  All  (Fold  `proof-tree`)
                THEN  Auto)
Home
Index