Users' Mathboxes Mathbox for Norm Megill < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  cdleme3b Structured version   Visualization version   GIF version

Theorem cdleme3b 40231
Description: Part of proof of Lemma E in [Crawley] p. 113. Lemma leading to cdleme3fa 40238 and cdleme3 40239. (Contributed by NM, 6-Jun-2012.)
Hypotheses
Ref Expression
cdleme1.l = (le‘𝐾)
cdleme1.j = (join‘𝐾)
cdleme1.m = (meet‘𝐾)
cdleme1.a 𝐴 = (Atoms‘𝐾)
cdleme1.h 𝐻 = (LHyp‘𝐾)
cdleme1.u 𝑈 = ((𝑃 𝑄) 𝑊)
cdleme1.f 𝐹 = ((𝑅 𝑈) (𝑄 ((𝑃 𝑅) 𝑊)))
Assertion
Ref Expression
cdleme3b (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝐹𝑅)

Proof of Theorem cdleme3b
StepHypRef Expression
1 simpll 767 . . 3 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝐾 ∈ HL)
2 simpr3l 1235 . . . 4 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑅𝐴)
3 eqid 2737 . . . . 5 (Base‘𝐾) = (Base‘𝐾)
4 cdleme1.a . . . . 5 𝐴 = (Atoms‘𝐾)
53, 4atbase 39290 . . . 4 (𝑅𝐴𝑅 ∈ (Base‘𝐾))
62, 5syl 17 . . 3 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑅 ∈ (Base‘𝐾))
7 hllat 39364 . . . . 5 (𝐾 ∈ HL → 𝐾 ∈ Lat)
87ad2antrr 726 . . . 4 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝐾 ∈ Lat)
9 cdleme1.f . . . . 5 𝐹 = ((𝑅 𝑈) (𝑄 ((𝑃 𝑅) 𝑊)))
10 cdleme1.l . . . . . . . . . 10 = (le‘𝐾)
11 cdleme1.j . . . . . . . . . 10 = (join‘𝐾)
12 cdleme1.m . . . . . . . . . 10 = (meet‘𝐾)
13 cdleme1.h . . . . . . . . . 10 𝐻 = (LHyp‘𝐾)
14 cdleme1.u . . . . . . . . . 10 𝑈 = ((𝑃 𝑄) 𝑊)
1510, 11, 12, 4, 13, 14lhpat2 40047 . . . . . . . . 9 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄)) → 𝑈𝐴)
16153adant3r3 1185 . . . . . . . 8 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑈𝐴)
173, 4atbase 39290 . . . . . . . 8 (𝑈𝐴𝑈 ∈ (Base‘𝐾))
1816, 17syl 17 . . . . . . 7 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑈 ∈ (Base‘𝐾))
193, 11latjcl 18484 . . . . . . 7 ((𝐾 ∈ Lat ∧ 𝑅 ∈ (Base‘𝐾) ∧ 𝑈 ∈ (Base‘𝐾)) → (𝑅 𝑈) ∈ (Base‘𝐾))
208, 6, 18, 19syl3anc 1373 . . . . . 6 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑅 𝑈) ∈ (Base‘𝐾))
21 simpr2l 1233 . . . . . . . 8 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑄𝐴)
223, 4atbase 39290 . . . . . . . 8 (𝑄𝐴𝑄 ∈ (Base‘𝐾))
2321, 22syl 17 . . . . . . 7 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑄 ∈ (Base‘𝐾))
24 simpr1l 1231 . . . . . . . . . 10 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑃𝐴)
253, 4atbase 39290 . . . . . . . . . 10 (𝑃𝐴𝑃 ∈ (Base‘𝐾))
2624, 25syl 17 . . . . . . . . 9 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑃 ∈ (Base‘𝐾))
273, 11latjcl 18484 . . . . . . . . 9 ((𝐾 ∈ Lat ∧ 𝑃 ∈ (Base‘𝐾) ∧ 𝑅 ∈ (Base‘𝐾)) → (𝑃 𝑅) ∈ (Base‘𝐾))
288, 26, 6, 27syl3anc 1373 . . . . . . . 8 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑃 𝑅) ∈ (Base‘𝐾))
293, 13lhpbase 40000 . . . . . . . . 9 (𝑊𝐻𝑊 ∈ (Base‘𝐾))
3029ad2antlr 727 . . . . . . . 8 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑊 ∈ (Base‘𝐾))
313, 12latmcl 18485 . . . . . . . 8 ((𝐾 ∈ Lat ∧ (𝑃 𝑅) ∈ (Base‘𝐾) ∧ 𝑊 ∈ (Base‘𝐾)) → ((𝑃 𝑅) 𝑊) ∈ (Base‘𝐾))
328, 28, 30, 31syl3anc 1373 . . . . . . 7 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → ((𝑃 𝑅) 𝑊) ∈ (Base‘𝐾))
333, 11latjcl 18484 . . . . . . 7 ((𝐾 ∈ Lat ∧ 𝑄 ∈ (Base‘𝐾) ∧ ((𝑃 𝑅) 𝑊) ∈ (Base‘𝐾)) → (𝑄 ((𝑃 𝑅) 𝑊)) ∈ (Base‘𝐾))
348, 23, 32, 33syl3anc 1373 . . . . . 6 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑄 ((𝑃 𝑅) 𝑊)) ∈ (Base‘𝐾))
353, 12latmcl 18485 . . . . . 6 ((𝐾 ∈ Lat ∧ (𝑅 𝑈) ∈ (Base‘𝐾) ∧ (𝑄 ((𝑃 𝑅) 𝑊)) ∈ (Base‘𝐾)) → ((𝑅 𝑈) (𝑄 ((𝑃 𝑅) 𝑊))) ∈ (Base‘𝐾))
368, 20, 34, 35syl3anc 1373 . . . . 5 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → ((𝑅 𝑈) (𝑄 ((𝑃 𝑅) 𝑊))) ∈ (Base‘𝐾))
379, 36eqeltrid 2845 . . . 4 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝐹 ∈ (Base‘𝐾))
383, 11latjcl 18484 . . . 4 ((𝐾 ∈ Lat ∧ 𝑅 ∈ (Base‘𝐾) ∧ 𝐹 ∈ (Base‘𝐾)) → (𝑅 𝐹) ∈ (Base‘𝐾))
398, 6, 37, 38syl3anc 1373 . . 3 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑅 𝐹) ∈ (Base‘𝐾))
403, 11latjcl 18484 . . . . . . . . . 10 ((𝐾 ∈ Lat ∧ 𝑃 ∈ (Base‘𝐾) ∧ 𝑄 ∈ (Base‘𝐾)) → (𝑃 𝑄) ∈ (Base‘𝐾))
418, 26, 23, 40syl3anc 1373 . . . . . . . . 9 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑃 𝑄) ∈ (Base‘𝐾))
423, 10, 12latmle2 18510 . . . . . . . . 9 ((𝐾 ∈ Lat ∧ (𝑃 𝑄) ∈ (Base‘𝐾) ∧ 𝑊 ∈ (Base‘𝐾)) → ((𝑃 𝑄) 𝑊) 𝑊)
438, 41, 30, 42syl3anc 1373 . . . . . . . 8 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → ((𝑃 𝑄) 𝑊) 𝑊)
4414, 43eqbrtrid 5178 . . . . . . 7 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑈 𝑊)
45 simpr3r 1236 . . . . . . 7 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → ¬ 𝑅 𝑊)
46 nbrne2 5163 . . . . . . 7 ((𝑈 𝑊 ∧ ¬ 𝑅 𝑊) → 𝑈𝑅)
4744, 45, 46syl2anc 584 . . . . . 6 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑈𝑅)
4847necomd 2996 . . . . 5 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑅𝑈)
49 eqid 2737 . . . . . . 7 ( ⋖ ‘𝐾) = ( ⋖ ‘𝐾)
5011, 49, 4atcvr1 39419 . . . . . 6 ((𝐾 ∈ HL ∧ 𝑅𝐴𝑈𝐴) → (𝑅𝑈𝑅( ⋖ ‘𝐾)(𝑅 𝑈)))
511, 2, 16, 50syl3anc 1373 . . . . 5 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑅𝑈𝑅( ⋖ ‘𝐾)(𝑅 𝑈)))
5248, 51mpbid 232 . . . 4 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑅( ⋖ ‘𝐾)(𝑅 𝑈))
53 simpr3 1197 . . . . . 6 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑅𝐴 ∧ ¬ 𝑅 𝑊))
5424, 21, 533jca 1129 . . . . 5 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑃𝐴𝑄𝐴 ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊)))
5510, 11, 12, 4, 13, 14, 9cdleme1 40229 . . . . 5 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴𝑄𝐴 ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑅 𝐹) = (𝑅 𝑈))
5654, 55syldan 591 . . . 4 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑅 𝐹) = (𝑅 𝑈))
5752, 56breqtrrd 5171 . . 3 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑅( ⋖ ‘𝐾)(𝑅 𝐹))
583, 49cvrne 39282 . . 3 (((𝐾 ∈ HL ∧ 𝑅 ∈ (Base‘𝐾) ∧ (𝑅 𝐹) ∈ (Base‘𝐾)) ∧ 𝑅( ⋖ ‘𝐾)(𝑅 𝐹)) → 𝑅 ≠ (𝑅 𝐹))
591, 6, 39, 57, 58syl31anc 1375 . 2 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝑅 ≠ (𝑅 𝐹))
60 oveq2 7439 . . . . . 6 (𝐹 = 𝑅 → (𝑅 𝐹) = (𝑅 𝑅))
6160adantl 481 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) ∧ 𝐹 = 𝑅) → (𝑅 𝐹) = (𝑅 𝑅))
6211, 4hlatjidm 39370 . . . . . . 7 ((𝐾 ∈ HL ∧ 𝑅𝐴) → (𝑅 𝑅) = 𝑅)
631, 2, 62syl2anc 584 . . . . . 6 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑅 𝑅) = 𝑅)
6463adantr 480 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) ∧ 𝐹 = 𝑅) → (𝑅 𝑅) = 𝑅)
6561, 64eqtr2d 2778 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) ∧ 𝐹 = 𝑅) → 𝑅 = (𝑅 𝐹))
6665ex 412 . . 3 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝐹 = 𝑅𝑅 = (𝑅 𝐹)))
6766necon3d 2961 . 2 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → (𝑅 ≠ (𝑅 𝐹) → 𝐹𝑅))
6859, 67mpd 15 1 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴𝑃𝑄) ∧ (𝑅𝐴 ∧ ¬ 𝑅 𝑊))) → 𝐹𝑅)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395  w3a 1087   = wceq 1540  wcel 2108  wne 2940   class class class wbr 5143  cfv 6561  (class class class)co 7431  Basecbs 17247  lecple 17304  joincjn 18357  meetcmee 18358  Latclat 18476  ccvr 39263  Atomscatm 39264  HLchlt 39351  LHypclh 39986
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1795  ax-4 1809  ax-5 1910  ax-6 1967  ax-7 2007  ax-8 2110  ax-9 2118  ax-10 2141  ax-11 2157  ax-12 2177  ax-ext 2708  ax-rep 5279  ax-sep 5296  ax-nul 5306  ax-pow 5365  ax-pr 5432  ax-un 7755
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 849  df-3an 1089  df-tru 1543  df-fal 1553  df-ex 1780  df-nf 1784  df-sb 2065  df-mo 2540  df-eu 2569  df-clab 2715  df-cleq 2729  df-clel 2816  df-nfc 2892  df-ne 2941  df-ral 3062  df-rex 3071  df-rmo 3380  df-reu 3381  df-rab 3437  df-v 3482  df-sbc 3789  df-csb 3900  df-dif 3954  df-un 3956  df-in 3958  df-ss 3968  df-nul 4334  df-if 4526  df-pw 4602  df-sn 4627  df-pr 4629  df-op 4633  df-uni 4908  df-iun 4993  df-iin 4994  df-br 5144  df-opab 5206  df-mpt 5226  df-id 5578  df-xp 5691  df-rel 5692  df-cnv 5693  df-co 5694  df-dm 5695  df-rn 5696  df-res 5697  df-ima 5698  df-iota 6514  df-fun 6563  df-fn 6564  df-f 6565  df-f1 6566  df-fo 6567  df-f1o 6568  df-fv 6569  df-riota 7388  df-ov 7434  df-oprab 7435  df-mpo 7436  df-1st 8014  df-2nd 8015  df-proset 18340  df-poset 18359  df-plt 18375  df-lub 18391  df-glb 18392  df-join 18393  df-meet 18394  df-p0 18470  df-p1 18471  df-lat 18477  df-clat 18544  df-oposet 39177  df-ol 39179  df-oml 39180  df-covers 39267  df-ats 39268  df-atl 39299  df-cvlat 39323  df-hlat 39352  df-psubsp 39505  df-pmap 39506  df-padd 39798  df-lhyp 39990
This theorem is referenced by:  cdleme36m  40463
  Copyright terms: Public domain W3C validator