Step * 2 2 2 1 of Lemma fdl-hom_wf


1. Type
2. BoundedDistributiveLattice
3. X ⟶ Point(L)
4. fdl-hom(L;f) ∈ free-dl-type(X) ⟶ Point(L)
5. ((fdl-hom(L;f) 0) 0 ∈ Point(L)) ∧ ((fdl-hom(L;f) 1) 1 ∈ Point(L))
6. ∀as,bs:X List List.  (fdl-hom(L;f) as ∨ fdl-hom(L;f) bs (fdl-hom(L;f) as ∨ bs) ∈ Point(L))
⊢ fdl-hom(L;f) ∈ Hom(free-dl(X);L)
BY
((Assert ⌜Point(free-dl(X)) free-dl-type(X)⌝⋅ THENA (RW (SubC (TagC (mk_tag_term 100))) THEN Auto))
   THEN RepeatFor ((MemTypeCD THEN Auto))
   THEN Try (Thin (-1))
   THEN RWO "-3" (-2)
   THEN RWO "-3" (-1)
   THEN (InstLemma `dlattice-eq-equiv` [⌜X⌝]⋅ THENA Auto)
   THEN (OnVar `a' newQuotientElim THENA Auto)
   THEN (OnVar `b' newQuotientElim THENA Auto)) }

1
1. Type
2. BoundedDistributiveLattice
3. X ⟶ Point(L)
4. fdl-hom(L;f) ∈ free-dl-type(X) ⟶ Point(L)
5. (fdl-hom(L;f) 0) 0 ∈ Point(L)
6. (fdl-hom(L;f) 1) 1 ∈ Point(L)
7. ∀as,bs:X List List.  (fdl-hom(L;f) as ∨ fdl-hom(L;f) bs (fdl-hom(L;f) as ∨ bs) ∈ Point(L))
8. Point(free-dl(X)) free-dl-type(X)
9. istype(X List List)
10. ∀as,bs:X List List.  istype(dlattice-eq(X;as;bs))
11. ∀as:X List List. dlattice-eq(X;as;as)
12. istype(X List List)
13. ∀a1,b1:X List List.  istype(dlattice-eq(X;a1;b1))
14. ∀a1:X List List. dlattice-eq(X;a1;a1)
15. EquivRel(X List List;as,bs.dlattice-eq(X;as;bs))
16. as List List
17. bs List List
18. dlattice-eq(X;as;bs)
19. Point(L) Point(L) ∈ Type
20. a1 List List
21. b1 List List
22. dlattice-eq(X;a1;b1)
23. Point(L) Point(L) ∈ Type
⊢ fdl-hom(L;f) as ∧ fdl-hom(L;f) a1 (fdl-hom(L;f) bs ∧ b1) ∈ Point(L)

2
1. Type
2. BoundedDistributiveLattice
3. X ⟶ Point(L)
4. fdl-hom(L;f) ∈ free-dl-type(X) ⟶ Point(L)
5. (fdl-hom(L;f) 0) 0 ∈ Point(L)
6. (fdl-hom(L;f) 1) 1 ∈ Point(L)
7. ∀as,bs:X List List.  (fdl-hom(L;f) as ∨ fdl-hom(L;f) bs (fdl-hom(L;f) as ∨ bs) ∈ Point(L))
8. Point(free-dl(X)) free-dl-type(X)
9. istype(X List List)
10. ∀as,bs:X List List.  istype(dlattice-eq(X;as;bs))
11. ∀as:X List List. dlattice-eq(X;as;as)
12. istype(X List List)
13. ∀a1,b1:X List List.  istype(dlattice-eq(X;a1;b1))
14. ∀a1:X List List. dlattice-eq(X;a1;a1)
15. EquivRel(X List List;as,bs.dlattice-eq(X;as;bs))
16. as List List
17. bs List List
18. dlattice-eq(X;as;bs)
19. Point(L) Point(L) ∈ Type
20. a1 List List
21. b1 List List
22. dlattice-eq(X;a1;b1)
23. Point(L) Point(L) ∈ Type
⊢ fdl-hom(L;f) as ∨ fdl-hom(L;f) a1 (fdl-hom(L;f) bs ∨ b1) ∈ Point(L)


Latex:


Latex:

1.  X  :  Type
2.  L  :  BoundedDistributiveLattice
3.  f  :  X  {}\mrightarrow{}  Point(L)
4.  fdl-hom(L;f)  \mmember{}  free-dl-type(X)  {}\mrightarrow{}  Point(L)
5.  ((fdl-hom(L;f)  0)  =  0)  \mwedge{}  ((fdl-hom(L;f)  1)  =  1)
6.  \mforall{}as,bs:X  List  List.    (fdl-hom(L;f)  as  \mvee{}  fdl-hom(L;f)  bs  =  (fdl-hom(L;f)  as  \mvee{}  bs))
\mvdash{}  fdl-hom(L;f)  \mmember{}  Hom(free-dl(X);L)


By


Latex:
((Assert  \mkleeneopen{}Point(free-dl(X))  \msim{}  free-dl-type(X)\mkleeneclose{}\mcdot{}
    THENA  (RW  (SubC  (TagC  (mk\_tag\_term  100)))  0  THEN  Auto)
    )
  THEN  RepeatFor  2  ((MemTypeCD  THEN  Auto))
  THEN  Try  (Thin  (-1))
  THEN  RWO  "-3"  (-2)
  THEN  RWO  "-3"  (-1)
  THEN  (InstLemma  `dlattice-eq-equiv`  [\mkleeneopen{}X\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (OnVar  `a'  newQuotientElim  THENA  Auto)
  THEN  (OnVar  `b'  newQuotientElim  THENA  Auto))




Home Index