Step
*
5
of Lemma
free-dl_wf
1. X : Type
2. EquivRel(X List List;as,bs.dlattice-eq(X;as;bs))
3. ∀[a,b:free-dl-type(X)].  (free-dl-meet(a;b) = free-dl-meet(b;a) ∈ free-dl-type(X))
4. ∀[a,b:free-dl-type(X)].  (free-dl-join(a;b) = free-dl-join(b;a) ∈ free-dl-type(X))
5. a : free-dl-type(X)
6. b : free-dl-type(X)
7. c : free-dl-type(X)
⊢ free-dl-meet(a;free-dl-meet(b;c)) = free-dl-meet(free-dl-meet(a;b);c) ∈ free-dl-type(X)
BY
{ ((OnVar `a' newQuotientElim THENA Auto)
   THEN (OnVar `b' newQuotientElim THENA Auto)
   THEN (OnVar `c' newQuotientElim THENA Auto)
   THEN EqTypeCD
   THEN Auto
   THEN RepUR ``dlattice-eq`` 0
   THEN (RWO "dlattice-order-iff" 0 THENA Auto)
   THEN (RWW  "member-free-dl-meet" 0 THENA Auto)
   THEN ∀h:hyp. (RepUR ``dlattice-eq`` h THEN (RWO  "dlattice-order-iff" h THENA Auto)) 
   THEN D 0
   THEN (UnivCD THENA Auto)
   THEN ExRepD) }
1
1. X : Type
2. EquivRel(X List List;as,bs.(∀x:X List. ((x ∈ bs) 
⇒ (∃y:X List. ((y ∈ as) ∧ l_subset(X;y;x)))))
∧ (∀x:X List. ((x ∈ as) 
⇒ (∃y:X List. ((y ∈ bs) ∧ l_subset(X;y;x))))))
3. ∀[a,b:free-dl-type(X)].  (free-dl-meet(a;b) = free-dl-meet(b;a) ∈ free-dl-type(X))
4. ∀[a,b:free-dl-type(X)].  (free-dl-join(a;b) = free-dl-join(b;a) ∈ free-dl-type(X))
5. X List List ∈ Type
6. ∀as,bs:X List List.  (dlattice-eq(X;as;bs) ∈ Type)
7. ∀as:X List List
     ((∀x:X List. ((x ∈ as) 
⇒ (∃y:X List. ((y ∈ as) ∧ l_subset(X;y;x)))))
     ∧ (∀x:X List. ((x ∈ as) 
⇒ (∃y:X List. ((y ∈ as) ∧ l_subset(X;y;x))))))
8. X List List ∈ Type
9. ∀a1,b1:X List List.  (dlattice-eq(X;a1;b1) ∈ Type)
10. ∀a1:X List List
      ((∀x:X List. ((x ∈ a1) 
⇒ (∃y:X List. ((y ∈ a1) ∧ l_subset(X;y;x)))))
      ∧ (∀x:X List. ((x ∈ a1) 
⇒ (∃y:X List. ((y ∈ a1) ∧ l_subset(X;y;x))))))
11. X List List ∈ Type
12. ∀a2,b2:X List List.  (dlattice-eq(X;a2;b2) ∈ Type)
13. ∀a2:X List List
      ((∀x:X List. ((x ∈ a2) 
⇒ (∃y:X List. ((y ∈ a2) ∧ l_subset(X;y;x)))))
      ∧ (∀x:X List. ((x ∈ a2) 
⇒ (∃y:X List. ((y ∈ a2) ∧ l_subset(X;y;x))))))
14. as : X List List
15. bs : X List List
16. ∀x:X List. ((x ∈ bs) 
⇒ (∃y:X List. ((y ∈ as) ∧ l_subset(X;y;x))))
17. ∀x:X List. ((x ∈ as) 
⇒ (∃y:X List. ((y ∈ bs) ∧ l_subset(X;y;x))))
18. free-dl-type(X) = free-dl-type(X) ∈ Type
19. a1 : X List List
20. b1 : X List List
21. ∀x:X List. ((x ∈ b1) 
⇒ (∃y:X List. ((y ∈ a1) ∧ l_subset(X;y;x))))
22. ∀x:X List. ((x ∈ a1) 
⇒ (∃y:X List. ((y ∈ b1) ∧ l_subset(X;y;x))))
23. free-dl-type(X) = free-dl-type(X) ∈ Type
24. a2 : X List List
25. b2 : X List List
26. ∀x:X List. ((x ∈ b2) 
⇒ (∃y:X List. ((y ∈ a2) ∧ l_subset(X;y;x))))
27. ∀x:X List. ((x ∈ a2) 
⇒ (∃y:X List. ((y ∈ b2) ∧ l_subset(X;y;x))))
28. free-dl-type(X) = free-dl-type(X) ∈ Type
29. x : X List
30. u : X List
31. v : X List
32. u1 : X List
33. v1 : X List
34. (u1 ∈ bs)
35. (v1 ∈ b1)
36. u = (u1 @ v1) ∈ (X List)
37. (v ∈ b2)
38. x = (u @ v) ∈ (X List)
⊢ ∃y:X List
   ((∃u,v:X List
      ((u ∈ as) ∧ (∃u,v1:X List. ((u ∈ a1) ∧ (v1 ∈ a2) ∧ (v = (u @ v1) ∈ (X List)))) ∧ (y = (u @ v) ∈ (X List))))
   ∧ l_subset(X;y;x))
2
1. X : Type
2. EquivRel(X List List;as,bs.(∀x:X List. ((x ∈ bs) 
⇒ (∃y:X List. ((y ∈ as) ∧ l_subset(X;y;x)))))
∧ (∀x:X List. ((x ∈ as) 
⇒ (∃y:X List. ((y ∈ bs) ∧ l_subset(X;y;x))))))
3. ∀[a,b:free-dl-type(X)].  (free-dl-meet(a;b) = free-dl-meet(b;a) ∈ free-dl-type(X))
4. ∀[a,b:free-dl-type(X)].  (free-dl-join(a;b) = free-dl-join(b;a) ∈ free-dl-type(X))
5. X List List ∈ Type
6. ∀as,bs:X List List.  (dlattice-eq(X;as;bs) ∈ Type)
7. ∀as:X List List
     ((∀x:X List. ((x ∈ as) 
⇒ (∃y:X List. ((y ∈ as) ∧ l_subset(X;y;x)))))
     ∧ (∀x:X List. ((x ∈ as) 
⇒ (∃y:X List. ((y ∈ as) ∧ l_subset(X;y;x))))))
8. X List List ∈ Type
9. ∀a1,b1:X List List.  (dlattice-eq(X;a1;b1) ∈ Type)
10. ∀a1:X List List
      ((∀x:X List. ((x ∈ a1) 
⇒ (∃y:X List. ((y ∈ a1) ∧ l_subset(X;y;x)))))
      ∧ (∀x:X List. ((x ∈ a1) 
⇒ (∃y:X List. ((y ∈ a1) ∧ l_subset(X;y;x))))))
11. X List List ∈ Type
12. ∀a2,b2:X List List.  (dlattice-eq(X;a2;b2) ∈ Type)
13. ∀a2:X List List
      ((∀x:X List. ((x ∈ a2) 
⇒ (∃y:X List. ((y ∈ a2) ∧ l_subset(X;y;x)))))
      ∧ (∀x:X List. ((x ∈ a2) 
⇒ (∃y:X List. ((y ∈ a2) ∧ l_subset(X;y;x))))))
14. as : X List List
15. bs : X List List
16. ∀x:X List. ((x ∈ bs) 
⇒ (∃y:X List. ((y ∈ as) ∧ l_subset(X;y;x))))
17. ∀x:X List. ((x ∈ as) 
⇒ (∃y:X List. ((y ∈ bs) ∧ l_subset(X;y;x))))
18. free-dl-type(X) = free-dl-type(X) ∈ Type
19. a1 : X List List
20. b1 : X List List
21. ∀x:X List. ((x ∈ b1) 
⇒ (∃y:X List. ((y ∈ a1) ∧ l_subset(X;y;x))))
22. ∀x:X List. ((x ∈ a1) 
⇒ (∃y:X List. ((y ∈ b1) ∧ l_subset(X;y;x))))
23. free-dl-type(X) = free-dl-type(X) ∈ Type
24. a2 : X List List
25. b2 : X List List
26. ∀x:X List. ((x ∈ b2) 
⇒ (∃y:X List. ((y ∈ a2) ∧ l_subset(X;y;x))))
27. ∀x:X List. ((x ∈ a2) 
⇒ (∃y:X List. ((y ∈ b2) ∧ l_subset(X;y;x))))
28. free-dl-type(X) = free-dl-type(X) ∈ Type
29. x : X List
30. u : X List
31. v : X List
32. (u ∈ as)
33. u1 : X List
34. v1 : X List
35. (u1 ∈ a1)
36. (v1 ∈ a2)
37. v = (u1 @ v1) ∈ (X List)
38. x = (u @ v) ∈ (X List)
⊢ ∃y:X List
   ((∃u,v:X List
      ((∃u1,v:X List. ((u1 ∈ bs) ∧ (v ∈ b1) ∧ (u = (u1 @ v) ∈ (X List)))) ∧ (v ∈ b2) ∧ (y = (u @ v) ∈ (X List))))
   ∧ l_subset(X;y;x))
Latex:
Latex:
1.  X  :  Type
2.  EquivRel(X  List  List;as,bs.dlattice-eq(X;as;bs))
3.  \mforall{}[a,b:free-dl-type(X)].    (free-dl-meet(a;b)  =  free-dl-meet(b;a))
4.  \mforall{}[a,b:free-dl-type(X)].    (free-dl-join(a;b)  =  free-dl-join(b;a))
5.  a  :  free-dl-type(X)
6.  b  :  free-dl-type(X)
7.  c  :  free-dl-type(X)
\mvdash{}  free-dl-meet(a;free-dl-meet(b;c))  =  free-dl-meet(free-dl-meet(a;b);c)
By
Latex:
((OnVar  `a'  newQuotientElim  THENA  Auto)
  THEN  (OnVar  `b'  newQuotientElim  THENA  Auto)
  THEN  (OnVar  `c'  newQuotientElim  THENA  Auto)
  THEN  EqTypeCD
  THEN  Auto
  THEN  RepUR  ``dlattice-eq``  0
  THEN  (RWO  "dlattice-order-iff"  0  THENA  Auto)
  THEN  (RWW    "member-free-dl-meet"  0  THENA  Auto)
  THEN  \mforall{}h:hyp.  (RepUR  ``dlattice-eq``  h  THEN  (RWO    "dlattice-order-iff"  h  THENA  Auto)) 
  THEN  D  0
  THEN  (UnivCD  THENA  Auto)
  THEN  ExRepD)
Home
Index