ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  mulcmpblnr GIF version

Theorem mulcmpblnr 8115
Description: Lemma showing compatibility of multiplication. (Contributed by NM, 5-Sep-1995.)
Assertion
Ref Expression
mulcmpblnr ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (((𝐴 +P 𝐷) = (𝐵 +P 𝐶) ∧ (𝐹 +P 𝑆) = (𝐺 +P 𝑅)) → ⟨((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)), ((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹))⟩ ~R ⟨((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)), ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))⟩))

Proof of Theorem mulcmpblnr
StepHypRef Expression
1 mulcmpblnrlemg 8114 . . 3 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (((𝐴 +P 𝐷) = (𝐵 +P 𝐶) ∧ (𝐹 +P 𝑆) = (𝐺 +P 𝑅)) → ((𝐷 ·P 𝐹) +P (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅)))) = ((𝐷 ·P 𝐹) +P (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆))))))
2 simplrr 542 . . . . 5 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → 𝐷 ∈ P)
3 simprll 543 . . . . 5 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → 𝐹 ∈ P)
4 mulclpr 7946 . . . . 5 ((𝐷 ∈ P ∧ 𝐹 ∈ P) → (𝐷 ·P 𝐹) ∈ P)
52, 3, 4syl2anc 415 . . . 4 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (𝐷 ·P 𝐹) ∈ P)
6 simplll 539 . . . . . . 7 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → 𝐴 ∈ P)
7 mulclpr 7946 . . . . . . 7 ((𝐴 ∈ P ∧ 𝐹 ∈ P) → (𝐴 ·P 𝐹) ∈ P)
86, 3, 7syl2anc 415 . . . . . 6 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (𝐴 ·P 𝐹) ∈ P)
9 simpllr 540 . . . . . . 7 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → 𝐵 ∈ P)
10 simprlr 544 . . . . . . 7 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → 𝐺 ∈ P)
11 mulclpr 7946 . . . . . . 7 ((𝐵 ∈ P ∧ 𝐺 ∈ P) → (𝐵 ·P 𝐺) ∈ P)
129, 10, 11syl2anc 415 . . . . . 6 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (𝐵 ·P 𝐺) ∈ P)
13 addclpr 7911 . . . . . 6 (((𝐴 ·P 𝐹) ∈ P ∧ (𝐵 ·P 𝐺) ∈ P) → ((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) ∈ P)
148, 12, 13syl2anc 415 . . . . 5 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → ((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) ∈ P)
15 simplrl 541 . . . . . . 7 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → 𝐶 ∈ P)
16 simprrr 546 . . . . . . 7 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → 𝑆 ∈ P)
17 mulclpr 7946 . . . . . . 7 ((𝐶 ∈ P ∧ 𝑆 ∈ P) → (𝐶 ·P 𝑆) ∈ P)
1815, 16, 17syl2anc 415 . . . . . 6 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (𝐶 ·P 𝑆) ∈ P)
19 simprrl 545 . . . . . . 7 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → 𝑅 ∈ P)
20 mulclpr 7946 . . . . . . 7 ((𝐷 ∈ P ∧ 𝑅 ∈ P) → (𝐷 ·P 𝑅) ∈ P)
212, 19, 20syl2anc 415 . . . . . 6 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (𝐷 ·P 𝑅) ∈ P)
22 addclpr 7911 . . . . . 6 (((𝐶 ·P 𝑆) ∈ P ∧ (𝐷 ·P 𝑅) ∈ P) → ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅)) ∈ P)
2318, 21, 22syl2anc 415 . . . . 5 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅)) ∈ P)
24 addclpr 7911 . . . . 5 ((((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) ∈ P ∧ ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅)) ∈ P) → (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))) ∈ P)
2514, 23, 24syl2anc 415 . . . 4 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))) ∈ P)
26 mulclpr 7946 . . . . . . 7 ((𝐴 ∈ P ∧ 𝐺 ∈ P) → (𝐴 ·P 𝐺) ∈ P)
276, 10, 26syl2anc 415 . . . . . 6 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (𝐴 ·P 𝐺) ∈ P)
28 mulclpr 7946 . . . . . . 7 ((𝐵 ∈ P ∧ 𝐹 ∈ P) → (𝐵 ·P 𝐹) ∈ P)
299, 3, 28syl2anc 415 . . . . . 6 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (𝐵 ·P 𝐹) ∈ P)
30 addclpr 7911 . . . . . 6 (((𝐴 ·P 𝐺) ∈ P ∧ (𝐵 ·P 𝐹) ∈ P) → ((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) ∈ P)
3127, 29, 30syl2anc 415 . . . . 5 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → ((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) ∈ P)
32 mulclpr 7946 . . . . . . 7 ((𝐶 ∈ P ∧ 𝑅 ∈ P) → (𝐶 ·P 𝑅) ∈ P)
3315, 19, 32syl2anc 415 . . . . . 6 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (𝐶 ·P 𝑅) ∈ P)
34 mulclpr 7946 . . . . . . 7 ((𝐷 ∈ P ∧ 𝑆 ∈ P) → (𝐷 ·P 𝑆) ∈ P)
352, 16, 34syl2anc 415 . . . . . 6 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (𝐷 ·P 𝑆) ∈ P)
36 addclpr 7911 . . . . . 6 (((𝐶 ·P 𝑅) ∈ P ∧ (𝐷 ·P 𝑆) ∈ P) → ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)) ∈ P)
3733, 35, 36syl2anc 415 . . . . 5 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)) ∈ P)
38 addclpr 7911 . . . . 5 ((((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) ∈ P ∧ ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)) ∈ P) → (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆))) ∈ P)
3931, 37, 38syl2anc 415 . . . 4 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆))) ∈ P)
40 addcanprg 7990 . . . 4 (((𝐷 ·P 𝐹) ∈ P ∧ (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))) ∈ P ∧ (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆))) ∈ P) → (((𝐷 ·P 𝐹) +P (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅)))) = ((𝐷 ·P 𝐹) +P (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)))) → (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))) = (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)))))
415, 25, 39, 40syl3anc 1278 . . 3 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (((𝐷 ·P 𝐹) +P (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅)))) = ((𝐷 ·P 𝐹) +P (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)))) → (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))) = (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)))))
421, 41syld 45 . 2 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (((𝐴 +P 𝐷) = (𝐵 +P 𝐶) ∧ (𝐹 +P 𝑆) = (𝐺 +P 𝑅)) → (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))) = (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)))))
43 enrbreq 8108 . . 3 (((((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) ∈ P ∧ ((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) ∈ P) ∧ (((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)) ∈ P ∧ ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅)) ∈ P)) → (⟨((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)), ((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹))⟩ ~R ⟨((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)), ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))⟩ ↔ (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))) = (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)))))
4414, 31, 37, 23, 43syl22anc 1279 . 2 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (⟨((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)), ((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹))⟩ ~R ⟨((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)), ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))⟩ ↔ (((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)) +P ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))) = (((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹)) +P ((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)))))
4542, 44sylibrd 169 1 ((((𝐴 ∈ P ∧ 𝐵 ∈ P) ∧ (𝐶 ∈ P ∧ 𝐷 ∈ P)) ∧ ((𝐹 ∈ P ∧ 𝐺 ∈ P) ∧ (𝑅 ∈ P ∧ 𝑆 ∈ P))) → (((𝐴 +P 𝐷) = (𝐵 +P 𝐶) ∧ (𝐹 +P 𝑆) = (𝐺 +P 𝑅)) → ⟨((𝐴 ·P 𝐹) +P (𝐵 ·P 𝐺)), ((𝐴 ·P 𝐺) +P (𝐵 ·P 𝐹))⟩ ~R ⟨((𝐶 ·P 𝑅) +P (𝐷 ·P 𝑆)), ((𝐶 ·P 𝑆) +P (𝐷 ·P 𝑅))⟩))
Colors of variables:    wff set class
This proof depends on syntax axioms:   → wi 4   ∧ wa 104   ↔ wb 105   = wceq 1402   ∈ wcel 2209  ⟨cop 3712   class class class wbr 4131  (class class class)co 6088  Pcnp 7665   +P cpp 7667   ·P cmp 7668   ~R cer 7670
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 623  ax-in2 624  ax-io 721  ax-5 1500  ax-7 1501  ax-gen 1502  ax-ie1 1546  ax-ie2 1547  ax-8 1557  ax-10 1558  ax-11 1559  ax-i12 1560  ax-bndl 1562  ax-4 1563  ax-17 1579  ax-i9 1583  ax-ial 1587  ax-i5r 1588  ax-14 2212  ax-ext 2220  ax-coll 4248  ax-sep 4251  ax-nul 4261  ax-pow 4313  ax-pr 4348  ax-un 4580  ax-setind 4686  ax-iinf 4737
This proof depends on definitions:  df-bi 117  df-dc 847  df-3or 1010  df-3an 1011  df-tru 1405  df-fal 1408  df-nf 1514  df-sb 1816  df-eu 2089  df-mo 2090  df-clab 2225  df-cleq 2231  df-clel 2234  df-nfc 2381  df-ne 2421  df-ral 2533  df-rex 2534  df-reu 2535  df-rab 2537  df-v 2823  df-sbc 3052  df-csb 3148  df-dif 3222  df-un 3224  df-in 3226  df-ss 3233  df-nul 3521  df-pw 3690  df-sn 3715  df-pr 3716  df-op 3718  df-uni 3936  df-int 3971  df-iun 4014  df-br 4132  df-opab 4194  df-mpt 4195  df-tr 4232  df-eprel 4436  df-id 4440  df-po 4443  df-iso 4444  df-iord 4513  df-on 4515  df-suc 4518  df-iom 4740  df-xp 4782  df-rel 4783  df-cnv 4784  df-co 4785  df-dm 4786  df-rn 4787  df-res 4788  df-ima 4789  df-iota 5340  df-fun 5382  df-fn 5383  df-f 5384  df-f1 5385  df-fo 5386  df-f1o 5387  df-fv 5388  df-ov 6091  df-oprab 6092  df-mpo 6093  df-1st 6378  df-2nd 6379  df-recs 6580  df-irdg 6645  df-1o 6691  df-2o 6692  df-oadd 6695  df-omul 6696  df-er 6811  df-ec 6813  df-qs 6817  df-ni 7678  df-pli 7679  df-mi 7680  df-lti 7681  df-plpq 7718  df-mpq 7719  df-enq 7721  df-nqqs 7722  df-plqqs 7723  df-mqqs 7724  df-1nqqs 7725  df-rq 7726  df-ltnqqs 7727  df-enq0 7798  df-nq0 7799  df-0nq0 7800  df-plq0 7801  df-mq0 7802  df-inp 7840  df-iplp 7842  df-imp 7843  df-enr 8100
This theorem is used by:  mulsrmo  8118
  Copyright terms: Public domain W3C validator