Users' Mathboxes Mathbox for Scott Fenton < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  brfs Structured version   Visualization version   GIF version

Theorem brfs 36824
Description: Binary relation form of the general five segment predicate. (Contributed by Scott Fenton, 5-Oct-2013.)
Assertion
Ref Expression
brfs (((𝑁 ∈ ℕ ∧ 𝐴 ∈ (𝔼‘𝑁) ∧ 𝐵 ∈ (𝔼‘𝑁)) ∧ (𝐶 ∈ (𝔼‘𝑁) ∧ 𝐷 ∈ (𝔼‘𝑁) ∧ 𝐸 ∈ (𝔼‘𝑁)) ∧ (𝐹 ∈ (𝔼‘𝑁) ∧ 𝐺 ∈ (𝔼‘𝑁) ∧ 𝐻 ∈ (𝔼‘𝑁))) → (⟨⟨𝐴, 𝐵⟩, ⟨𝐶, 𝐷⟩⟩ FiveSeg ⟨⟨𝐸, 𝐹⟩, ⟨𝐺, 𝐻⟩⟩ ↔ (𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝐺⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, 𝐻⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, 𝐻⟩))))

Proof of Theorem brfs
Dummy variables 𝑎 𝑏 𝑐 𝑑 𝑒 𝑓 𝑔 ℎ 𝑝 𝑞 𝑛 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 breq1 5106 . . 3 (𝑎 = 𝐴 → (𝑎 Colinear ⟨𝑏, 𝑐⟩ ↔ 𝐴 Colinear ⟨𝑏, 𝑐⟩))
2 opeq1 4833 . . . 4 (𝑎 = 𝐴 → ⟨𝑎, ⟨𝑏, 𝑐⟩⟩ = ⟨𝐴, ⟨𝑏, 𝑐⟩⟩)
32breq1d 5113 . . 3 (𝑎 = 𝐴 → (⟨𝑎, ⟨𝑏, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ↔ ⟨𝐴, ⟨𝑏, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩))
4 opeq1 4833 . . . . 5 (𝑎 = 𝐴 → ⟨𝑎, 𝑑⟩ = ⟨𝐴, 𝑑⟩)
54breq1d 5113 . . . 4 (𝑎 = 𝐴 → (⟨𝑎, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ↔ ⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩))
65anbi1d 643 . . 3 (𝑎 = 𝐴 → ((⟨𝑎, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝑏, 𝑑⟩Cgr⟨𝑓, ℎ⟩) ↔ (⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝑏, 𝑑⟩Cgr⟨𝑓, ℎ⟩)))
71, 3, 63anbi123d 1464 . 2 (𝑎 = 𝐴 → ((𝑎 Colinear ⟨𝑏, 𝑐⟩ ∧ ⟨𝑎, ⟨𝑏, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝑎, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝑏, 𝑑⟩Cgr⟨𝑓, ℎ⟩)) ↔ (𝐴 Colinear ⟨𝑏, 𝑐⟩ ∧ ⟨𝐴, ⟨𝑏, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝑏, 𝑑⟩Cgr⟨𝑓, ℎ⟩))))
8 opeq1 4833 . . . 4 (𝑏 = 𝐵 → ⟨𝑏, 𝑐⟩ = ⟨𝐵, 𝑐⟩)
98breq2d 5115 . . 3 (𝑏 = 𝐵 → (𝐴 Colinear ⟨𝑏, 𝑐⟩ ↔ 𝐴 Colinear ⟨𝐵, 𝑐⟩))
108opeq2d 4840 . . . 4 (𝑏 = 𝐵 → ⟨𝐴, ⟨𝑏, 𝑐⟩⟩ = ⟨𝐴, ⟨𝐵, 𝑐⟩⟩)
1110breq1d 5113 . . 3 (𝑏 = 𝐵 → (⟨𝐴, ⟨𝑏, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ↔ ⟨𝐴, ⟨𝐵, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩))
12 opeq1 4833 . . . . 5 (𝑏 = 𝐵 → ⟨𝑏, 𝑑⟩ = ⟨𝐵, 𝑑⟩)
1312breq1d 5113 . . . 4 (𝑏 = 𝐵 → (⟨𝑏, 𝑑⟩Cgr⟨𝑓, ℎ⟩ ↔ ⟨𝐵, 𝑑⟩Cgr⟨𝑓, ℎ⟩))
1413anbi2d 642 . . 3 (𝑏 = 𝐵 → ((⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝑏, 𝑑⟩Cgr⟨𝑓, ℎ⟩) ↔ (⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝑑⟩Cgr⟨𝑓, ℎ⟩)))
159, 11, 143anbi123d 1464 . 2 (𝑏 = 𝐵 → ((𝐴 Colinear ⟨𝑏, 𝑐⟩ ∧ ⟨𝐴, ⟨𝑏, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝑏, 𝑑⟩Cgr⟨𝑓, ℎ⟩)) ↔ (𝐴 Colinear ⟨𝐵, 𝑐⟩ ∧ ⟨𝐴, ⟨𝐵, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝑑⟩Cgr⟨𝑓, ℎ⟩))))
16 opeq2 4834 . . . 4 (𝑐 = 𝐶 → ⟨𝐵, 𝑐⟩ = ⟨𝐵, 𝐶⟩)
1716breq2d 5115 . . 3 (𝑐 = 𝐶 → (𝐴 Colinear ⟨𝐵, 𝑐⟩ ↔ 𝐴 Colinear ⟨𝐵, 𝐶⟩))
1816opeq2d 4840 . . . 4 (𝑐 = 𝐶 → ⟨𝐴, ⟨𝐵, 𝑐⟩⟩ = ⟨𝐴, ⟨𝐵, 𝐶⟩⟩)
1918breq1d 5113 . . 3 (𝑐 = 𝐶 → (⟨𝐴, ⟨𝐵, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ↔ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩))
2017, 193anbi12d 1465 . 2 (𝑐 = 𝐶 → ((𝐴 Colinear ⟨𝐵, 𝑐⟩ ∧ ⟨𝐴, ⟨𝐵, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝑑⟩Cgr⟨𝑓, ℎ⟩)) ↔ (𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝑑⟩Cgr⟨𝑓, ℎ⟩))))
21 opeq2 4834 . . . . 5 (𝑑 = 𝐷 → ⟨𝐴, 𝑑⟩ = ⟨𝐴, 𝐷⟩)
2221breq1d 5113 . . . 4 (𝑑 = 𝐷 → (⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ↔ ⟨𝐴, 𝐷⟩Cgr⟨𝑒, ℎ⟩))
23 opeq2 4834 . . . . 5 (𝑑 = 𝐷 → ⟨𝐵, 𝑑⟩ = ⟨𝐵, 𝐷⟩)
2423breq1d 5113 . . . 4 (𝑑 = 𝐷 → (⟨𝐵, 𝑑⟩Cgr⟨𝑓, ℎ⟩ ↔ ⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩))
2522, 24anbi12d 644 . . 3 (𝑑 = 𝐷 → ((⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝑑⟩Cgr⟨𝑓, ℎ⟩) ↔ (⟨𝐴, 𝐷⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩)))
26253anbi3d 1470 . 2 (𝑑 = 𝐷 → ((𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝑑⟩Cgr⟨𝑓, ℎ⟩)) ↔ (𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩))))
27 opeq1 4833 . . . 4 (𝑒 = 𝐸 → ⟨𝑒, ⟨𝑓, 𝑔⟩⟩ = ⟨𝐸, ⟨𝑓, 𝑔⟩⟩)
2827breq2d 5115 . . 3 (𝑒 = 𝐸 → (⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ↔ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝑓, 𝑔⟩⟩))
29 opeq1 4833 . . . . 5 (𝑒 = 𝐸 → ⟨𝑒, ℎ⟩ = ⟨𝐸, ℎ⟩)
3029breq2d 5115 . . . 4 (𝑒 = 𝐸 → (⟨𝐴, 𝐷⟩Cgr⟨𝑒, ℎ⟩ ↔ ⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩))
3130anbi1d 643 . . 3 (𝑒 = 𝐸 → ((⟨𝐴, 𝐷⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩) ↔ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩)))
3228, 313anbi23d 1467 . 2 (𝑒 = 𝐸 → ((𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩)) ↔ (𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩))))
33 opeq1 4833 . . . . 5 (𝑓 = 𝐹 → ⟨𝑓, 𝑔⟩ = ⟨𝐹, 𝑔⟩)
3433opeq2d 4840 . . . 4 (𝑓 = 𝐹 → ⟨𝐸, ⟨𝑓, 𝑔⟩⟩ = ⟨𝐸, ⟨𝐹, 𝑔⟩⟩)
3534breq2d 5115 . . 3 (𝑓 = 𝐹 → (⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝑓, 𝑔⟩⟩ ↔ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝑔⟩⟩))
36 opeq1 4833 . . . . 5 (𝑓 = 𝐹 → ⟨𝑓, ℎ⟩ = ⟨𝐹, ℎ⟩)
3736breq2d 5115 . . . 4 (𝑓 = 𝐹 → (⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩ ↔ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, ℎ⟩))
3837anbi2d 642 . . 3 (𝑓 = 𝐹 → ((⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩) ↔ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, ℎ⟩)))
3935, 383anbi23d 1467 . 2 (𝑓 = 𝐹 → ((𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝑓, ℎ⟩)) ↔ (𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝑔⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, ℎ⟩))))
40 opeq2 4834 . . . . 5 (𝑔 = 𝐺 → ⟨𝐹, 𝑔⟩ = ⟨𝐹, 𝐺⟩)
4140opeq2d 4840 . . . 4 (𝑔 = 𝐺 → ⟨𝐸, ⟨𝐹, 𝑔⟩⟩ = ⟨𝐸, ⟨𝐹, 𝐺⟩⟩)
4241breq2d 5115 . . 3 (𝑔 = 𝐺 → (⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝑔⟩⟩ ↔ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝐺⟩⟩))
43423anbi2d 1469 . 2 (𝑔 = 𝐺 → ((𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝑔⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, ℎ⟩)) ↔ (𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝐺⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, ℎ⟩))))
44 opeq2 4834 . . . . 5 (ℎ = 𝐻 → ⟨𝐸, ℎ⟩ = ⟨𝐸, 𝐻⟩)
4544breq2d 5115 . . . 4 (ℎ = 𝐻 → (⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ↔ ⟨𝐴, 𝐷⟩Cgr⟨𝐸, 𝐻⟩))
46 opeq2 4834 . . . . 5 (ℎ = 𝐻 → ⟨𝐹, ℎ⟩ = ⟨𝐹, 𝐻⟩)
4746breq2d 5115 . . . 4 (ℎ = 𝐻 → (⟨𝐵, 𝐷⟩Cgr⟨𝐹, ℎ⟩ ↔ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, 𝐻⟩))
4845, 47anbi12d 644 . . 3 (ℎ = 𝐻 → ((⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, ℎ⟩) ↔ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, 𝐻⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, 𝐻⟩)))
49483anbi3d 1470 . 2 (ℎ = 𝐻 → ((𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝐺⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, ℎ⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, ℎ⟩)) ↔ (𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝐺⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, 𝐻⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, 𝐻⟩))))
50 fveq2 6883 . 2 (𝑛 = 𝑁 → (𝔼‘𝑛) = (𝔼‘𝑁))
51 df-fs 36787 . 2 FiveSeg = {⟨𝑝, 𝑞⟩ ∣ ∃𝑛 ∈ ℕ ∃𝑎 ∈ (𝔼‘𝑛)∃𝑏 ∈ (𝔼‘𝑛)∃𝑐 ∈ (𝔼‘𝑛)∃𝑑 ∈ (𝔼‘𝑛)∃𝑒 ∈ (𝔼‘𝑛)∃𝑓 ∈ (𝔼‘𝑛)∃𝑔 ∈ (𝔼‘𝑛)∃ℎ ∈ (𝔼‘𝑛)(𝑝 = ⟨⟨𝑎, 𝑏⟩, ⟨𝑐, 𝑑⟩⟩ ∧ 𝑞 = ⟨⟨𝑒, 𝑓⟩, ⟨𝑔, ℎ⟩⟩ ∧ (𝑎 Colinear ⟨𝑏, 𝑐⟩ ∧ ⟨𝑎, ⟨𝑏, 𝑐⟩⟩Cgr3⟨𝑒, ⟨𝑓, 𝑔⟩⟩ ∧ (⟨𝑎, 𝑑⟩Cgr⟨𝑒, ℎ⟩ ∧ ⟨𝑏, 𝑑⟩Cgr⟨𝑓, ℎ⟩)))}
527, 15, 20, 26, 32, 39, 43, 49, 50, 51br8 36500 1 (((𝑁 ∈ ℕ ∧ 𝐴 ∈ (𝔼‘𝑁) ∧ 𝐵 ∈ (𝔼‘𝑁)) ∧ (𝐶 ∈ (𝔼‘𝑁) ∧ 𝐷 ∈ (𝔼‘𝑁) ∧ 𝐸 ∈ (𝔼‘𝑁)) ∧ (𝐹 ∈ (𝔼‘𝑁) ∧ 𝐺 ∈ (𝔼‘𝑁) ∧ 𝐻 ∈ (𝔼‘𝑁))) → (⟨⟨𝐴, 𝐵⟩, ⟨𝐶, 𝐷⟩⟩ FiveSeg ⟨⟨𝐸, 𝐹⟩, ⟨𝐺, 𝐻⟩⟩ ↔ (𝐴 Colinear ⟨𝐵, 𝐶⟩ ∧ ⟨𝐴, ⟨𝐵, 𝐶⟩⟩Cgr3⟨𝐸, ⟨𝐹, 𝐺⟩⟩ ∧ (⟨𝐴, 𝐷⟩Cgr⟨𝐸, 𝐻⟩ ∧ ⟨𝐵, 𝐷⟩Cgr⟨𝐹, 𝐻⟩))))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:   → wi 4   ↔ wb 209   ∧ wa 401   ∧ w3a 1103   = wceq 1570   ∈ wcel 2145  ⟨cop 4590   class class class wbr 5103  ‘cfv 6537  ℕcn 12328  𝔼cee 29458  Cgrccgr 29460  Cgr3ccgr3 36781   Colinear ccolin 36782   FiveSeg cfs 36783
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1828  ax-4 1842  ax-5 1943  ax-6 2000  ax-7 2041  ax-8 2147  ax-9 2155  ax-ext 2733  ax-sep 5249  ax-pr 5391
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1813  df-sb 2100  df-clab 2740  df-cleq 2753  df-clel 2836  df-ral 3078  df-rex 3088  df-rab 3414  df-v 3453  df-dif 3902  df-un 3904  df-in 3906  df-ss 3916  df-nul 4280  df-if 4483  df-sn 4585  df-pr 4587  df-op 4591  df-uni 4868  df-br 5104  df-opab 5168  df-iota 6493  df-fv 6545  df-fs 36787
This theorem is used by:  fscgr  36825  linecgr  36826
  Copyright terms: Public domain W3C validator