Step * 3 1 of Lemma FormSafe1_functionality


1. Type
2. left Form(C)
3. right Form(C)
4. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(left) vs)  (FormSafe1(left) ws))
5. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(right) vs)  (FormSafe1(right) ws))
6. vs Atom List
7. ws Atom List
8. l_subset(Atom;ws;vs)
9. as Atom List
10. bs Atom List
11. set-equal(Atom;vs;as bs)
12. FormSafe1(left) as
13. FormSafe1(right) bs
14. l_disjoint(Atom;as;FormFvs(right)) ∨ l_disjoint(Atom;bs;FormFvs(left))
⊢ ∃as,bs:Atom List
   (set-equal(Atom;ws;as bs)
   ∧ (FormSafe1(left) as)
   ∧ (FormSafe1(right) bs)
   ∧ (l_disjoint(Atom;as;FormFvs(right)) ∨ l_disjoint(Atom;bs;FormFvs(left))))
BY
(InstConcl [⌜(ws ⋂ as)⌝;⌜(ws ⋂ bs)⌝]⋅ THEN Auto) }

1
1. Type
2. left Form(C)
3. right Form(C)
4. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(left) vs)  (FormSafe1(left) ws))
5. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(right) vs)  (FormSafe1(right) ws))
6. vs Atom List
7. ws Atom List
8. l_subset(Atom;ws;vs)
9. as Atom List
10. bs Atom List
11. set-equal(Atom;vs;as bs)
12. FormSafe1(left) as
13. FormSafe1(right) bs
14. l_disjoint(Atom;as;FormFvs(right)) ∨ l_disjoint(Atom;bs;FormFvs(left))
⊢ set-equal(Atom;ws;(ws ⋂ as) (ws ⋂ bs))

2
1. Type
2. left Form(C)
3. right Form(C)
4. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(left) vs)  (FormSafe1(left) ws))
5. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(right) vs)  (FormSafe1(right) ws))
6. vs Atom List
7. ws Atom List
8. l_subset(Atom;ws;vs)
9. as Atom List
10. bs Atom List
11. set-equal(Atom;vs;as bs)
12. FormSafe1(left) as
13. FormSafe1(right) bs
14. l_disjoint(Atom;as;FormFvs(right)) ∨ l_disjoint(Atom;bs;FormFvs(left))
15. set-equal(Atom;ws;(ws ⋂ as) (ws ⋂ bs))
⊢ FormSafe1(left) (ws ⋂ as)

3
1. Type
2. left Form(C)
3. right Form(C)
4. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(left) vs)  (FormSafe1(left) ws))
5. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(right) vs)  (FormSafe1(right) ws))
6. vs Atom List
7. ws Atom List
8. l_subset(Atom;ws;vs)
9. as Atom List
10. bs Atom List
11. set-equal(Atom;vs;as bs)
12. FormSafe1(left) as
13. FormSafe1(right) bs
14. l_disjoint(Atom;as;FormFvs(right)) ∨ l_disjoint(Atom;bs;FormFvs(left))
15. set-equal(Atom;ws;(ws ⋂ as) (ws ⋂ bs))
16. FormSafe1(left) (ws ⋂ as)
⊢ FormSafe1(right) (ws ⋂ bs)

4
1. Type
2. left Form(C)
3. right Form(C)
4. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(left) vs)  (FormSafe1(left) ws))
5. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs)  (FormSafe1(right) vs)  (FormSafe1(right) ws))
6. vs Atom List
7. ws Atom List
8. l_subset(Atom;ws;vs)
9. as Atom List
10. bs Atom List
11. set-equal(Atom;vs;as bs)
12. FormSafe1(left) as
13. FormSafe1(right) bs
14. l_disjoint(Atom;as;FormFvs(right)) ∨ l_disjoint(Atom;bs;FormFvs(left))
15. set-equal(Atom;ws;(ws ⋂ as) (ws ⋂ bs))
16. FormSafe1(left) (ws ⋂ as)
17. FormSafe1(right) (ws ⋂ bs)
⊢ l_disjoint(Atom;(ws ⋂ as);FormFvs(right)) ∨ l_disjoint(Atom;(ws ⋂ bs);FormFvs(left))


Latex:


Latex:

1.  C  :  Type
2.  left  :  Form(C)
3.  right  :  Form(C)
4.  \mforall{}vs,ws:Atom  List.    (l\_subset(Atom;ws;vs)  {}\mRightarrow{}  (FormSafe1(left)  vs)  {}\mRightarrow{}  (FormSafe1(left)  ws))
5.  \mforall{}vs,ws:Atom  List.    (l\_subset(Atom;ws;vs)  {}\mRightarrow{}  (FormSafe1(right)  vs)  {}\mRightarrow{}  (FormSafe1(right)  ws))
6.  vs  :  Atom  List
7.  ws  :  Atom  List
8.  l\_subset(Atom;ws;vs)
9.  as  :  Atom  List
10.  bs  :  Atom  List
11.  set-equal(Atom;vs;as  @  bs)
12.  FormSafe1(left)  as
13.  FormSafe1(right)  bs
14.  l\_disjoint(Atom;as;FormFvs(right))  \mvee{}  l\_disjoint(Atom;bs;FormFvs(left))
\mvdash{}  \mexists{}as,bs:Atom  List
      (set-equal(Atom;ws;as  @  bs)
      \mwedge{}  (FormSafe1(left)  as)
      \mwedge{}  (FormSafe1(right)  bs)
      \mwedge{}  (l\_disjoint(Atom;as;FormFvs(right))  \mvee{}  l\_disjoint(Atom;bs;FormFvs(left))))


By


Latex:
(InstConcl  [\mkleeneopen{}(ws  \mcap{}  as)\mkleeneclose{};\mkleeneopen{}(ws  \mcap{}  bs)\mkleeneclose{}]\mcdot{}  THEN  Auto)




Home Index