MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  smupvallem Structured version   Visualization version   GIF version

Theorem smupvallem 16529
Description: If 𝐴 only has elements less than 𝑁, then all elements of the partial sum sequence past 𝑁 already equal the final value. (Contributed by Mario Carneiro, 20-Sep-2016.)
Hypotheses
Ref Expression
smuval.a (𝜑𝐴 ⊆ ℕ0)
smuval.b (𝜑𝐵 ⊆ ℕ0)
smuval.p 𝑃 = seq0((𝑝 ∈ 𝒫 ℕ0, 𝑚 ∈ ℕ0 ↦ (𝑝 sadd {𝑛 ∈ ℕ0 ∣ (𝑚𝐴 ∧ (𝑛𝑚) ∈ 𝐵)})), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))
smuval.n (𝜑𝑁 ∈ ℕ0)
smupvallem.a (𝜑𝐴 ⊆ (0..^𝑁))
smupvallem.m (𝜑𝑀 ∈ (ℤ𝑁))
Assertion
Ref Expression
smupvallem (𝜑 → (𝑃𝑀) = (𝐴 smul 𝐵))
Distinct variable groups:   𝑚,𝑛,𝑝,𝐴   𝑛,𝑁   𝜑,𝑛   𝐵,𝑚,𝑛,𝑝
Allowed substitution hints:   𝜑(𝑚,𝑝)   𝑃(𝑚,𝑛,𝑝)   𝑀(𝑚,𝑛,𝑝)   𝑁(𝑚,𝑝)

Proof of Theorem smupvallem
Dummy variables 𝑘 𝑥 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 smuval.a . . . . . . 7 (𝜑𝐴 ⊆ ℕ0)
2 smuval.b . . . . . . 7 (𝜑𝐵 ⊆ ℕ0)
3 smuval.p . . . . . . 7 𝑃 = seq0((𝑝 ∈ 𝒫 ℕ0, 𝑚 ∈ ℕ0 ↦ (𝑝 sadd {𝑛 ∈ ℕ0 ∣ (𝑚𝐴 ∧ (𝑛𝑚) ∈ 𝐵)})), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))
41, 2, 3smupf 16524 . . . . . 6 (𝜑𝑃:ℕ0⟶𝒫 ℕ0)
5 smuval.n . . . . . . 7 (𝜑𝑁 ∈ ℕ0)
6 smupvallem.m . . . . . . 7 (𝜑𝑀 ∈ (ℤ𝑁))
7 eluznn0 12982 . . . . . . 7 ((𝑁 ∈ ℕ0𝑀 ∈ (ℤ𝑁)) → 𝑀 ∈ ℕ0)
85, 6, 7syl2anc 583 . . . . . 6 (𝜑𝑀 ∈ ℕ0)
94, 8ffvelcdmd 7119 . . . . 5 (𝜑 → (𝑃𝑀) ∈ 𝒫 ℕ0)
109elpwid 4631 . . . 4 (𝜑 → (𝑃𝑀) ⊆ ℕ0)
1110sseld 4007 . . 3 (𝜑 → (𝑘 ∈ (𝑃𝑀) → 𝑘 ∈ ℕ0))
121, 2, 3smufval 16523 . . . . 5 (𝜑 → (𝐴 smul 𝐵) = {𝑘 ∈ ℕ0𝑘 ∈ (𝑃‘(𝑘 + 1))})
13 ssrab2 4103 . . . . 5 {𝑘 ∈ ℕ0𝑘 ∈ (𝑃‘(𝑘 + 1))} ⊆ ℕ0
1412, 13eqsstrdi 4063 . . . 4 (𝜑 → (𝐴 smul 𝐵) ⊆ ℕ0)
1514sseld 4007 . . 3 (𝜑 → (𝑘 ∈ (𝐴 smul 𝐵) → 𝑘 ∈ ℕ0))
161ad2antrr 725 . . . . . . 7 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑁 ∈ (ℤ‘(𝑘 + 1))) → 𝐴 ⊆ ℕ0)
172ad2antrr 725 . . . . . . 7 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑁 ∈ (ℤ‘(𝑘 + 1))) → 𝐵 ⊆ ℕ0)
18 simplr 768 . . . . . . 7 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑁 ∈ (ℤ‘(𝑘 + 1))) → 𝑘 ∈ ℕ0)
196adantr 480 . . . . . . . 8 ((𝜑𝑘 ∈ ℕ0) → 𝑀 ∈ (ℤ𝑁))
20 uztrn 12921 . . . . . . . 8 ((𝑀 ∈ (ℤ𝑁) ∧ 𝑁 ∈ (ℤ‘(𝑘 + 1))) → 𝑀 ∈ (ℤ‘(𝑘 + 1)))
2119, 20sylan 579 . . . . . . 7 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑁 ∈ (ℤ‘(𝑘 + 1))) → 𝑀 ∈ (ℤ‘(𝑘 + 1)))
2216, 17, 3, 18, 21smuval2 16528 . . . . . 6 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑁 ∈ (ℤ‘(𝑘 + 1))) → (𝑘 ∈ (𝐴 smul 𝐵) ↔ 𝑘 ∈ (𝑃𝑀)))
2322bicomd 223 . . . . 5 (((𝜑𝑘 ∈ ℕ0) ∧ 𝑁 ∈ (ℤ‘(𝑘 + 1))) → (𝑘 ∈ (𝑃𝑀) ↔ 𝑘 ∈ (𝐴 smul 𝐵)))
246ad2antrr 725 . . . . . . . . 9 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → 𝑀 ∈ (ℤ𝑁))
25 simpll 766 . . . . . . . . 9 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → 𝜑)
26 fveqeq2 6929 . . . . . . . . . . 11 (𝑥 = 𝑁 → ((𝑃𝑥) = (𝑃𝑁) ↔ (𝑃𝑁) = (𝑃𝑁)))
2726imbi2d 340 . . . . . . . . . 10 (𝑥 = 𝑁 → ((𝜑 → (𝑃𝑥) = (𝑃𝑁)) ↔ (𝜑 → (𝑃𝑁) = (𝑃𝑁))))
28 fveqeq2 6929 . . . . . . . . . . 11 (𝑥 = 𝑘 → ((𝑃𝑥) = (𝑃𝑁) ↔ (𝑃𝑘) = (𝑃𝑁)))
2928imbi2d 340 . . . . . . . . . 10 (𝑥 = 𝑘 → ((𝜑 → (𝑃𝑥) = (𝑃𝑁)) ↔ (𝜑 → (𝑃𝑘) = (𝑃𝑁))))
30 fveqeq2 6929 . . . . . . . . . . 11 (𝑥 = (𝑘 + 1) → ((𝑃𝑥) = (𝑃𝑁) ↔ (𝑃‘(𝑘 + 1)) = (𝑃𝑁)))
3130imbi2d 340 . . . . . . . . . 10 (𝑥 = (𝑘 + 1) → ((𝜑 → (𝑃𝑥) = (𝑃𝑁)) ↔ (𝜑 → (𝑃‘(𝑘 + 1)) = (𝑃𝑁))))
32 fveqeq2 6929 . . . . . . . . . . 11 (𝑥 = 𝑀 → ((𝑃𝑥) = (𝑃𝑁) ↔ (𝑃𝑀) = (𝑃𝑁)))
3332imbi2d 340 . . . . . . . . . 10 (𝑥 = 𝑀 → ((𝜑 → (𝑃𝑥) = (𝑃𝑁)) ↔ (𝜑 → (𝑃𝑀) = (𝑃𝑁))))
34 eqidd 2741 . . . . . . . . . 10 (𝜑 → (𝑃𝑁) = (𝑃𝑁))
351adantr 480 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ (ℤ𝑁)) → 𝐴 ⊆ ℕ0)
362adantr 480 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ (ℤ𝑁)) → 𝐵 ⊆ ℕ0)
37 eluznn0 12982 . . . . . . . . . . . . . . . . 17 ((𝑁 ∈ ℕ0𝑘 ∈ (ℤ𝑁)) → 𝑘 ∈ ℕ0)
385, 37sylan 579 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ (ℤ𝑁)) → 𝑘 ∈ ℕ0)
3935, 36, 3, 38smupp1 16526 . . . . . . . . . . . . . . 15 ((𝜑𝑘 ∈ (ℤ𝑁)) → (𝑃‘(𝑘 + 1)) = ((𝑃𝑘) sadd {𝑛 ∈ ℕ0 ∣ (𝑘𝐴 ∧ (𝑛𝑘) ∈ 𝐵)}))
405nn0red 12614 . . . . . . . . . . . . . . . . . . . . 21 (𝜑𝑁 ∈ ℝ)
4140adantr 480 . . . . . . . . . . . . . . . . . . . 20 ((𝜑𝑘 ∈ (ℤ𝑁)) → 𝑁 ∈ ℝ)
4238nn0red 12614 . . . . . . . . . . . . . . . . . . . 20 ((𝜑𝑘 ∈ (ℤ𝑁)) → 𝑘 ∈ ℝ)
43 eluzle 12916 . . . . . . . . . . . . . . . . . . . . 21 (𝑘 ∈ (ℤ𝑁) → 𝑁𝑘)
4443adantl 481 . . . . . . . . . . . . . . . . . . . 20 ((𝜑𝑘 ∈ (ℤ𝑁)) → 𝑁𝑘)
4541, 42, 44lensymd 11441 . . . . . . . . . . . . . . . . . . 19 ((𝜑𝑘 ∈ (ℤ𝑁)) → ¬ 𝑘 < 𝑁)
46 smupvallem.a . . . . . . . . . . . . . . . . . . . . . . 23 (𝜑𝐴 ⊆ (0..^𝑁))
4746adantr 480 . . . . . . . . . . . . . . . . . . . . . 22 ((𝜑𝑘 ∈ (ℤ𝑁)) → 𝐴 ⊆ (0..^𝑁))
4847sseld 4007 . . . . . . . . . . . . . . . . . . . . 21 ((𝜑𝑘 ∈ (ℤ𝑁)) → (𝑘𝐴𝑘 ∈ (0..^𝑁)))
49 elfzolt2 13725 . . . . . . . . . . . . . . . . . . . . 21 (𝑘 ∈ (0..^𝑁) → 𝑘 < 𝑁)
5048, 49syl6 35 . . . . . . . . . . . . . . . . . . . 20 ((𝜑𝑘 ∈ (ℤ𝑁)) → (𝑘𝐴𝑘 < 𝑁))
5150adantrd 491 . . . . . . . . . . . . . . . . . . 19 ((𝜑𝑘 ∈ (ℤ𝑁)) → ((𝑘𝐴 ∧ (𝑛𝑘) ∈ 𝐵) → 𝑘 < 𝑁))
5245, 51mtod 198 . . . . . . . . . . . . . . . . . 18 ((𝜑𝑘 ∈ (ℤ𝑁)) → ¬ (𝑘𝐴 ∧ (𝑛𝑘) ∈ 𝐵))
5352ralrimivw 3156 . . . . . . . . . . . . . . . . 17 ((𝜑𝑘 ∈ (ℤ𝑁)) → ∀𝑛 ∈ ℕ0 ¬ (𝑘𝐴 ∧ (𝑛𝑘) ∈ 𝐵))
54 rabeq0 4411 . . . . . . . . . . . . . . . . 17 ({𝑛 ∈ ℕ0 ∣ (𝑘𝐴 ∧ (𝑛𝑘) ∈ 𝐵)} = ∅ ↔ ∀𝑛 ∈ ℕ0 ¬ (𝑘𝐴 ∧ (𝑛𝑘) ∈ 𝐵))
5553, 54sylibr 234 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ (ℤ𝑁)) → {𝑛 ∈ ℕ0 ∣ (𝑘𝐴 ∧ (𝑛𝑘) ∈ 𝐵)} = ∅)
5655oveq2d 7464 . . . . . . . . . . . . . . 15 ((𝜑𝑘 ∈ (ℤ𝑁)) → ((𝑃𝑘) sadd {𝑛 ∈ ℕ0 ∣ (𝑘𝐴 ∧ (𝑛𝑘) ∈ 𝐵)}) = ((𝑃𝑘) sadd ∅))
574adantr 480 . . . . . . . . . . . . . . . . . 18 ((𝜑𝑘 ∈ (ℤ𝑁)) → 𝑃:ℕ0⟶𝒫 ℕ0)
5857, 38ffvelcdmd 7119 . . . . . . . . . . . . . . . . 17 ((𝜑𝑘 ∈ (ℤ𝑁)) → (𝑃𝑘) ∈ 𝒫 ℕ0)
5958elpwid 4631 . . . . . . . . . . . . . . . 16 ((𝜑𝑘 ∈ (ℤ𝑁)) → (𝑃𝑘) ⊆ ℕ0)
60 sadid1 16514 . . . . . . . . . . . . . . . 16 ((𝑃𝑘) ⊆ ℕ0 → ((𝑃𝑘) sadd ∅) = (𝑃𝑘))
6159, 60syl 17 . . . . . . . . . . . . . . 15 ((𝜑𝑘 ∈ (ℤ𝑁)) → ((𝑃𝑘) sadd ∅) = (𝑃𝑘))
6239, 56, 613eqtrd 2784 . . . . . . . . . . . . . 14 ((𝜑𝑘 ∈ (ℤ𝑁)) → (𝑃‘(𝑘 + 1)) = (𝑃𝑘))
6362eqeq1d 2742 . . . . . . . . . . . . 13 ((𝜑𝑘 ∈ (ℤ𝑁)) → ((𝑃‘(𝑘 + 1)) = (𝑃𝑁) ↔ (𝑃𝑘) = (𝑃𝑁)))
6463biimprd 248 . . . . . . . . . . . 12 ((𝜑𝑘 ∈ (ℤ𝑁)) → ((𝑃𝑘) = (𝑃𝑁) → (𝑃‘(𝑘 + 1)) = (𝑃𝑁)))
6564expcom 413 . . . . . . . . . . 11 (𝑘 ∈ (ℤ𝑁) → (𝜑 → ((𝑃𝑘) = (𝑃𝑁) → (𝑃‘(𝑘 + 1)) = (𝑃𝑁))))
6665a2d 29 . . . . . . . . . 10 (𝑘 ∈ (ℤ𝑁) → ((𝜑 → (𝑃𝑘) = (𝑃𝑁)) → (𝜑 → (𝑃‘(𝑘 + 1)) = (𝑃𝑁))))
6727, 29, 31, 33, 34, 66uzind4i 12975 . . . . . . . . 9 (𝑀 ∈ (ℤ𝑁) → (𝜑 → (𝑃𝑀) = (𝑃𝑁)))
6824, 25, 67sylc 65 . . . . . . . 8 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → (𝑃𝑀) = (𝑃𝑁))
69 simpr 484 . . . . . . . . 9 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → (𝑘 + 1) ∈ (ℤ𝑁))
7027, 29, 31, 31, 34, 66uzind4i 12975 . . . . . . . . 9 ((𝑘 + 1) ∈ (ℤ𝑁) → (𝜑 → (𝑃‘(𝑘 + 1)) = (𝑃𝑁)))
7169, 25, 70sylc 65 . . . . . . . 8 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → (𝑃‘(𝑘 + 1)) = (𝑃𝑁))
7268, 71eqtr4d 2783 . . . . . . 7 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → (𝑃𝑀) = (𝑃‘(𝑘 + 1)))
7372eleq2d 2830 . . . . . 6 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → (𝑘 ∈ (𝑃𝑀) ↔ 𝑘 ∈ (𝑃‘(𝑘 + 1))))
741ad2antrr 725 . . . . . . 7 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → 𝐴 ⊆ ℕ0)
752ad2antrr 725 . . . . . . 7 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → 𝐵 ⊆ ℕ0)
76 simplr 768 . . . . . . 7 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → 𝑘 ∈ ℕ0)
7774, 75, 3, 76smuval 16527 . . . . . 6 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → (𝑘 ∈ (𝐴 smul 𝐵) ↔ 𝑘 ∈ (𝑃‘(𝑘 + 1))))
7873, 77bitr4d 282 . . . . 5 (((𝜑𝑘 ∈ ℕ0) ∧ (𝑘 + 1) ∈ (ℤ𝑁)) → (𝑘 ∈ (𝑃𝑀) ↔ 𝑘 ∈ (𝐴 smul 𝐵)))
79 simpr 484 . . . . . . . 8 ((𝜑𝑘 ∈ ℕ0) → 𝑘 ∈ ℕ0)
8079nn0zd 12665 . . . . . . 7 ((𝜑𝑘 ∈ ℕ0) → 𝑘 ∈ ℤ)
8180peano2zd 12750 . . . . . 6 ((𝜑𝑘 ∈ ℕ0) → (𝑘 + 1) ∈ ℤ)
825nn0zd 12665 . . . . . . 7 (𝜑𝑁 ∈ ℤ)
8382adantr 480 . . . . . 6 ((𝜑𝑘 ∈ ℕ0) → 𝑁 ∈ ℤ)
84 uztric 12927 . . . . . 6 (((𝑘 + 1) ∈ ℤ ∧ 𝑁 ∈ ℤ) → (𝑁 ∈ (ℤ‘(𝑘 + 1)) ∨ (𝑘 + 1) ∈ (ℤ𝑁)))
8581, 83, 84syl2anc 583 . . . . 5 ((𝜑𝑘 ∈ ℕ0) → (𝑁 ∈ (ℤ‘(𝑘 + 1)) ∨ (𝑘 + 1) ∈ (ℤ𝑁)))
8623, 78, 85mpjaodan 959 . . . 4 ((𝜑𝑘 ∈ ℕ0) → (𝑘 ∈ (𝑃𝑀) ↔ 𝑘 ∈ (𝐴 smul 𝐵)))
8786ex 412 . . 3 (𝜑 → (𝑘 ∈ ℕ0 → (𝑘 ∈ (𝑃𝑀) ↔ 𝑘 ∈ (𝐴 smul 𝐵))))
8811, 15, 87pm5.21ndd 379 . 2 (𝜑 → (𝑘 ∈ (𝑃𝑀) ↔ 𝑘 ∈ (𝐴 smul 𝐵)))
8988eqrdv 2738 1 (𝜑 → (𝑃𝑀) = (𝐴 smul 𝐵))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395  wo 846   = wceq 1537  wcel 2108  wral 3067  {crab 3443  wss 3976  c0 4352  ifcif 4548  𝒫 cpw 4622   class class class wbr 5166  cmpt 5249  wf 6569  cfv 6573  (class class class)co 7448  cmpo 7450  cr 11183  0cc0 11184  1c1 11185   + caddc 11187   < clt 11324  cle 11325  cmin 11520  0cn0 12553  cz 12639  cuz 12903  ..^cfzo 13711  seqcseq 14052   sadd csad 16466   smul csmu 16467
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1793  ax-4 1807  ax-5 1909  ax-6 1967  ax-7 2007  ax-8 2110  ax-9 2118  ax-10 2141  ax-11 2158  ax-12 2178  ax-ext 2711  ax-rep 5303  ax-sep 5317  ax-nul 5324  ax-pow 5383  ax-pr 5447  ax-un 7770  ax-inf2 9710  ax-cnex 11240  ax-resscn 11241  ax-1cn 11242  ax-icn 11243  ax-addcl 11244  ax-addrcl 11245  ax-mulcl 11246  ax-mulrcl 11247  ax-mulcom 11248  ax-addass 11249  ax-mulass 11250  ax-distr 11251  ax-i2m1 11252  ax-1ne0 11253  ax-1rid 11254  ax-rnegex 11255  ax-rrecex 11256  ax-cnre 11257  ax-pre-lttri 11258  ax-pre-lttrn 11259  ax-pre-ltadd 11260  ax-pre-mulgt0 11261  ax-pre-sup 11262
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 847  df-3or 1088  df-3an 1089  df-xor 1509  df-tru 1540  df-fal 1550  df-had 1591  df-cad 1604  df-ex 1778  df-nf 1782  df-sb 2065  df-mo 2543  df-eu 2572  df-clab 2718  df-cleq 2732  df-clel 2819  df-nfc 2895  df-ne 2947  df-nel 3053  df-ral 3068  df-rex 3077  df-rmo 3388  df-reu 3389  df-rab 3444  df-v 3490  df-sbc 3805  df-csb 3922  df-dif 3979  df-un 3981  df-in 3983  df-ss 3993  df-pss 3996  df-nul 4353  df-if 4549  df-pw 4624  df-sn 4649  df-pr 4651  df-op 4655  df-uni 4932  df-int 4971  df-iun 5017  df-disj 5134  df-br 5167  df-opab 5229  df-mpt 5250  df-tr 5284  df-id 5593  df-eprel 5599  df-po 5607  df-so 5608  df-fr 5652  df-se 5653  df-we 5654  df-xp 5706  df-rel 5707  df-cnv 5708  df-co 5709  df-dm 5710  df-rn 5711  df-res 5712  df-ima 5713  df-pred 6332  df-ord 6398  df-on 6399  df-lim 6400  df-suc 6401  df-iota 6525  df-fun 6575  df-fn 6576  df-f 6577  df-f1 6578  df-fo 6579  df-f1o 6580  df-fv 6581  df-isom 6582  df-riota 7404  df-ov 7451  df-oprab 7452  df-mpo 7453  df-om 7904  df-1st 8030  df-2nd 8031  df-frecs 8322  df-wrecs 8353  df-recs 8427  df-rdg 8466  df-1o 8522  df-2o 8523  df-oadd 8526  df-er 8763  df-map 8886  df-pm 8887  df-en 9004  df-dom 9005  df-sdom 9006  df-fin 9007  df-sup 9511  df-inf 9512  df-oi 9579  df-dju 9970  df-card 10008  df-pnf 11326  df-mnf 11327  df-xr 11328  df-ltxr 11329  df-le 11330  df-sub 11522  df-neg 11523  df-div 11948  df-nn 12294  df-2 12356  df-3 12357  df-n0 12554  df-xnn0 12626  df-z 12640  df-uz 12904  df-rp 13058  df-fz 13568  df-fzo 13712  df-fl 13843  df-mod 13921  df-seq 14053  df-exp 14113  df-hash 14380  df-cj 15148  df-re 15149  df-im 15150  df-sqrt 15284  df-abs 15285  df-clim 15534  df-sum 15735  df-dvds 16303  df-bits 16468  df-sad 16497  df-smu 16522
This theorem is referenced by:  smupval  16534
  Copyright terms: Public domain W3C validator