Step
*
1
12
1
1
2
1
1
1
of Lemma
FOL-proveable-evidence
.....assertion..... 
1. hyps : mFOL() List
2. concl : mFOL()
3. subgoals : mFOL-sequent() List
4. hypnum : ℕ
5. z : ℤ
6. ¬(z ∈ mFOL-sequent-freevars(<hyps, concl>))
7. hypnum < ||hyps||
8. ↑mFOquant?(hyps[hypnum])
9. mFOquant-isall(hyps[hypnum]) = ff
10. [Dom] : Type
11. [S] : FOStruct+{i:l}(Dom)
12. a : FOAssignment(mFOL-sequent-freevars(<hyps, concl>),Dom)
13. tuple-type(FOL-hyps-meaning(Dom;S;a;hyps))
14. B : mFOL()
15. mFOquant-body(hyps[hypnum]) = B ∈ mFOL()
16. y : ℤ
17. mFOquant-var(hyps[hypnum]) = y ∈ ℤ
18. FOL-sequent-evidence{i:l}(<[B[z/y] / hyps], concl>)
19. hyps[hypnum] = ∃y;B) ∈ mFOL()
⊢ filter(λx.(¬b(x =z y));mFOL-freevars(B)) ⊆ mFOL-sequent-freevars(<hyps, concl>)
BY
{ (Unfold `l_contains` 0
   THEN (RWO "l_all_iff" 0 THENA Auto)
   THEN (RWO "member_filter" 0 THENA Auto)
   THEN Reduce 0
   THEN (RWO "member-mFOL-sequent-freevars" 0 THENA Auto)
   THEN Reduce 0
   THEN Auto
   THEN (RW assert_pushdownC  (-1) THENA Auto)) }
1
1. hyps : mFOL() List
2. concl : mFOL()
3. subgoals : mFOL-sequent() List
4. hypnum : ℕ
5. z : ℤ
6. ¬(z ∈ mFOL-sequent-freevars(<hyps, concl>))
7. hypnum < ||hyps||
8. ↑mFOquant?(hyps[hypnum])
9. mFOquant-isall(hyps[hypnum]) = ff
10. [Dom] : Type
11. [S] : FOStruct+{i:l}(Dom)
12. a : FOAssignment(mFOL-sequent-freevars(<hyps, concl>),Dom)
13. tuple-type(FOL-hyps-meaning(Dom;S;a;hyps))
14. B : mFOL()
15. mFOquant-body(hyps[hypnum]) = B ∈ mFOL()
16. y : ℤ
17. mFOquant-var(hyps[hypnum]) = y ∈ ℤ
18. FOL-sequent-evidence{i:l}(<[B[z/y] / hyps], concl>)
19. hyps[hypnum] = ∃y;B) ∈ mFOL()
20. a1 : ℤ
21. (a1 ∈ mFOL-freevars(B))
22. ¬(a1 = y ∈ ℤ)
⊢ (a1 ∈ mFOL-freevars(concl)) ∨ (∃h∈hyps. (a1 ∈ mFOL-freevars(h)))
Latex:
Latex:
.....assertion..... 
1.  hyps  :  mFOL()  List
2.  concl  :  mFOL()
3.  subgoals  :  mFOL-sequent()  List
4.  hypnum  :  \mBbbN{}
5.  z  :  \mBbbZ{}
6.  \mneg{}(z  \mmember{}  mFOL-sequent-freevars(<hyps,  concl>))
7.  hypnum  <  ||hyps||
8.  \muparrow{}mFOquant?(hyps[hypnum])
9.  mFOquant-isall(hyps[hypnum])  =  ff
10.  [Dom]  :  Type
11.  [S]  :  FOStruct+\{i:l\}(Dom)
12.  a  :  FOAssignment(mFOL-sequent-freevars(<hyps,  concl>),Dom)
13.  tuple-type(FOL-hyps-meaning(Dom;S;a;hyps))
14.  B  :  mFOL()
15.  mFOquant-body(hyps[hypnum])  =  B
16.  y  :  \mBbbZ{}
17.  mFOquant-var(hyps[hypnum])  =  y
18.  FOL-sequent-evidence\{i:l\}(<[B[z/y]  /  hyps],  concl>)
19.  hyps[hypnum]  =  \mexists{}y;B)
\mvdash{}  filter(\mlambda{}x.(\mneg{}\msubb{}(x  =\msubz{}  y));mFOL-freevars(B))  \msubseteq{}  mFOL-sequent-freevars(<hyps,  concl>)
By
Latex:
(Unfold  `l\_contains`  0
  THEN  (RWO  "l\_all\_iff"  0  THENA  Auto)
  THEN  (RWO  "member\_filter"  0  THENA  Auto)
  THEN  Reduce  0
  THEN  (RWO  "member-mFOL-sequent-freevars"  0  THENA  Auto)
  THEN  Reduce  0
  THEN  Auto
  THEN  (RW  assert\_pushdownC    (-1)  THENA  Auto))
Home
Index