Step
*
1
1
1
1
2
of Lemma
FormSafe-iff-FormSafe1'
1. C : Type
2. left : Form(C)
3. right : Form(C)
4. vs : Atom List
5. as : Atom List
6. bs : Atom List
7. set-equal(Atom;vs;as @ bs)
8. FormSafe1(left) as
9. FormSafe1(right) bs
10. l_disjoint(Atom;as;FormFvs(right))
11. l_subset(Atom;as;vs-FormFvs(right))
12. FormSafe1(left) as
⊢ FormSafe1(right) vs-as
BY
{ (InstLemma `FormSafe1_functionality` [⌜C⌝;⌜right⌝;⌜bs⌝;⌜vs-as⌝]⋅ THEN Auto) }
1
.....antecedent..... 
1. C : Type
2. left : Form(C)
3. right : Form(C)
4. vs : Atom List
5. as : Atom List
6. bs : Atom List
7. set-equal(Atom;vs;as @ bs)
8. FormSafe1(left) as
9. FormSafe1(right) bs
10. l_disjoint(Atom;as;FormFvs(right))
11. l_subset(Atom;as;vs-FormFvs(right))
12. FormSafe1(left) as
⊢ l_subset(Atom;vs-as;bs)
Latex:
Latex:
1.  C  :  Type
2.  left  :  Form(C)
3.  right  :  Form(C)
4.  vs  :  Atom  List
5.  as  :  Atom  List
6.  bs  :  Atom  List
7.  set-equal(Atom;vs;as  @  bs)
8.  FormSafe1(left)  as
9.  FormSafe1(right)  bs
10.  l\_disjoint(Atom;as;FormFvs(right))
11.  l\_subset(Atom;as;vs-FormFvs(right))
12.  FormSafe1(left)  as
\mvdash{}  FormSafe1(right)  vs-as
By
Latex:
(InstLemma  `FormSafe1\_functionality`  [\mkleeneopen{}C\mkleeneclose{};\mkleeneopen{}right\mkleeneclose{};\mkleeneopen{}bs\mkleeneclose{};\mkleeneopen{}vs-as\mkleeneclose{}]\mcdot{}  THEN  Auto)
Home
Index