Step
*
3
1
2
of Lemma
FormSafe1_functionality
1. C : 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)
BY
{ (InstHyp [⌜as⌝;⌜(ws ⋂ as)⌝] 4⋅ THEN EAuto 1 THEN (D 0 THEN Auto) THEN RWO "member-intersection" (-1) THEN Auto) }
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))
15.  set-equal(Atom;ws;(ws  \mcap{}  as)  @  (ws  \mcap{}  bs))
\mvdash{}  FormSafe1(left)  (ws  \mcap{}  as)
By
Latex:
(InstHyp  [\mkleeneopen{}as\mkleeneclose{};\mkleeneopen{}(ws  \mcap{}  as)\mkleeneclose{}]  4\mcdot{}
  THEN  EAuto  1
  THEN  (D  0  THEN  Auto)
  THEN  RWO  "member-intersection"  (-1)
  THEN  Auto)
Home
Index