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

Theorem ennnfonelemg 12115
 Description: Lemma for ennnfone 12137. Closure for 𝐺. (Contributed by Jim Kingdon, 20-Jul-2023.)
Hypotheses
Ref Expression
ennnfonelemh.dceq (𝜑 → ∀𝑥𝐴𝑦𝐴 DECID 𝑥 = 𝑦)
ennnfonelemh.f (𝜑𝐹:ω–onto𝐴)
ennnfonelemh.ne (𝜑 → ∀𝑛 ∈ ω ∃𝑘 ∈ ω ∀𝑗 ∈ suc 𝑛(𝐹𝑘) ≠ (𝐹𝑗))
ennnfonelemh.g 𝐺 = (𝑥 ∈ (𝐴pm ω), 𝑦 ∈ ω ↦ if((𝐹𝑦) ∈ (𝐹𝑦), 𝑥, (𝑥 ∪ {⟨dom 𝑥, (𝐹𝑦)⟩})))
ennnfonelemh.n 𝑁 = frec((𝑥 ∈ ℤ ↦ (𝑥 + 1)), 0)
ennnfonelemh.j 𝐽 = (𝑥 ∈ ℕ0 ↦ if(𝑥 = 0, ∅, (𝑁‘(𝑥 − 1))))
ennnfonelemh.h 𝐻 = seq0(𝐺, 𝐽)
Assertion
Ref Expression
ennnfonelemg ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → (𝑓𝐺𝑗) ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω})
Distinct variable groups:   𝐴,𝑔,𝑥,𝑦   𝑔,𝐹,𝑥,𝑦   𝑥,𝑁   𝑓,𝑔,𝑥,𝑦   𝑔,𝑗,𝑥,𝑦   𝜑,𝑥,𝑦
Allowed substitution hints:   𝜑(𝑓,𝑔,𝑗,𝑘,𝑛)   𝐴(𝑓,𝑗,𝑘,𝑛)   𝐹(𝑓,𝑗,𝑘,𝑛)   𝐺(𝑥,𝑦,𝑓,𝑔,𝑗,𝑘,𝑛)   𝐻(𝑥,𝑦,𝑓,𝑔,𝑗,𝑘,𝑛)   𝐽(𝑥,𝑦,𝑓,𝑔,𝑗,𝑘,𝑛)   𝑁(𝑦,𝑓,𝑔,𝑗,𝑘,𝑛)

Proof of Theorem ennnfonelemg
StepHypRef Expression
1 ennnfonelemh.g . . . 4 𝐺 = (𝑥 ∈ (𝐴pm ω), 𝑦 ∈ ω ↦ if((𝐹𝑦) ∈ (𝐹𝑦), 𝑥, (𝑥 ∪ {⟨dom 𝑥, (𝐹𝑦)⟩})))
21a1i 9 . . 3 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → 𝐺 = (𝑥 ∈ (𝐴pm ω), 𝑦 ∈ ω ↦ if((𝐹𝑦) ∈ (𝐹𝑦), 𝑥, (𝑥 ∪ {⟨dom 𝑥, (𝐹𝑦)⟩}))))
3 simpr 109 . . . . . . 7 ((𝑥 = 𝑓𝑦 = 𝑗) → 𝑦 = 𝑗)
43fveq2d 5471 . . . . . 6 ((𝑥 = 𝑓𝑦 = 𝑗) → (𝐹𝑦) = (𝐹𝑗))
53imaeq2d 4927 . . . . . 6 ((𝑥 = 𝑓𝑦 = 𝑗) → (𝐹𝑦) = (𝐹𝑗))
64, 5eleq12d 2228 . . . . 5 ((𝑥 = 𝑓𝑦 = 𝑗) → ((𝐹𝑦) ∈ (𝐹𝑦) ↔ (𝐹𝑗) ∈ (𝐹𝑗)))
7 simpl 108 . . . . 5 ((𝑥 = 𝑓𝑦 = 𝑗) → 𝑥 = 𝑓)
87dmeqd 4787 . . . . . . . 8 ((𝑥 = 𝑓𝑦 = 𝑗) → dom 𝑥 = dom 𝑓)
98, 4opeq12d 3749 . . . . . . 7 ((𝑥 = 𝑓𝑦 = 𝑗) → ⟨dom 𝑥, (𝐹𝑦)⟩ = ⟨dom 𝑓, (𝐹𝑗)⟩)
109sneqd 3573 . . . . . 6 ((𝑥 = 𝑓𝑦 = 𝑗) → {⟨dom 𝑥, (𝐹𝑦)⟩} = {⟨dom 𝑓, (𝐹𝑗)⟩})
117, 10uneq12d 3262 . . . . 5 ((𝑥 = 𝑓𝑦 = 𝑗) → (𝑥 ∪ {⟨dom 𝑥, (𝐹𝑦)⟩}) = (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}))
126, 7, 11ifbieq12d 3531 . . . 4 ((𝑥 = 𝑓𝑦 = 𝑗) → if((𝐹𝑦) ∈ (𝐹𝑦), 𝑥, (𝑥 ∪ {⟨dom 𝑥, (𝐹𝑦)⟩})) = if((𝐹𝑗) ∈ (𝐹𝑗), 𝑓, (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩})))
1312adantl 275 . . 3 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ (𝑥 = 𝑓𝑦 = 𝑗)) → if((𝐹𝑦) ∈ (𝐹𝑦), 𝑥, (𝑥 ∪ {⟨dom 𝑥, (𝐹𝑦)⟩})) = if((𝐹𝑗) ∈ (𝐹𝑗), 𝑓, (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩})))
14 ssrab2 3213 . . . 4 {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ⊆ (𝐴pm ω)
15 simprl 521 . . . 4 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → 𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω})
1614, 15sseldi 3126 . . 3 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → 𝑓 ∈ (𝐴pm ω))
17 simprr 522 . . 3 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → 𝑗 ∈ ω)
18 simplrl 525 . . . 4 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ (𝐹𝑗) ∈ (𝐹𝑗)) → 𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω})
19 dmeq 4785 . . . . . 6 (𝑔 = (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}) → dom 𝑔 = dom (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}))
2019eleq1d 2226 . . . . 5 (𝑔 = (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}) → (dom 𝑔 ∈ ω ↔ dom (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}) ∈ ω))
21 omex 4551 . . . . . . . 8 ω ∈ V
22 ennnfonelemh.f . . . . . . . 8 (𝜑𝐹:ω–onto𝐴)
23 focdmex 10654 . . . . . . . 8 ((ω ∈ V ∧ 𝐹:ω–onto𝐴) → 𝐴 ∈ V)
2421, 22, 23sylancr 411 . . . . . . 7 (𝜑𝐴 ∈ V)
2524ad2antrr 480 . . . . . 6 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → 𝐴 ∈ V)
2621a1i 9 . . . . . 6 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → ω ∈ V)
27 simplrl 525 . . . . . . . 8 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → 𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω})
28 elrabi 2865 . . . . . . . . . 10 (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} → 𝑓 ∈ (𝐴pm ω))
29 elpmi 6609 . . . . . . . . . 10 (𝑓 ∈ (𝐴pm ω) → (𝑓:dom 𝑓𝐴 ∧ dom 𝑓 ⊆ ω))
3028, 29syl 14 . . . . . . . . 9 (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} → (𝑓:dom 𝑓𝐴 ∧ dom 𝑓 ⊆ ω))
3130simpld 111 . . . . . . . 8 (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} → 𝑓:dom 𝑓𝐴)
3227, 31syl 14 . . . . . . 7 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → 𝑓:dom 𝑓𝐴)
33 dmeq 4785 . . . . . . . . . . 11 (𝑔 = 𝑓 → dom 𝑔 = dom 𝑓)
3433eleq1d 2226 . . . . . . . . . 10 (𝑔 = 𝑓 → (dom 𝑔 ∈ ω ↔ dom 𝑓 ∈ ω))
3534elrab 2868 . . . . . . . . 9 (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ↔ (𝑓 ∈ (𝐴pm ω) ∧ dom 𝑓 ∈ ω))
3635simprbi 273 . . . . . . . 8 (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} → dom 𝑓 ∈ ω)
3727, 36syl 14 . . . . . . 7 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → dom 𝑓 ∈ ω)
38 nnord 4570 . . . . . . . . 9 (dom 𝑓 ∈ ω → Ord dom 𝑓)
3937, 38syl 14 . . . . . . . 8 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → Ord dom 𝑓)
40 ordirr 4500 . . . . . . . 8 (Ord dom 𝑓 → ¬ dom 𝑓 ∈ dom 𝑓)
4139, 40syl 14 . . . . . . 7 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → ¬ dom 𝑓 ∈ dom 𝑓)
4222adantr 274 . . . . . . . . . 10 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → 𝐹:ω–onto𝐴)
43 fof 5391 . . . . . . . . . 10 (𝐹:ω–onto𝐴𝐹:ω⟶𝐴)
4442, 43syl 14 . . . . . . . . 9 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → 𝐹:ω⟶𝐴)
4544, 17ffvelrnd 5602 . . . . . . . 8 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → (𝐹𝑗) ∈ 𝐴)
4645adantr 274 . . . . . . 7 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → (𝐹𝑗) ∈ 𝐴)
47 fsnunf 5666 . . . . . . 7 ((𝑓:dom 𝑓𝐴 ∧ (dom 𝑓 ∈ ω ∧ ¬ dom 𝑓 ∈ dom 𝑓) ∧ (𝐹𝑗) ∈ 𝐴) → (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}):(dom 𝑓 ∪ {dom 𝑓})⟶𝐴)
4832, 37, 41, 46, 47syl121anc 1225 . . . . . 6 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}):(dom 𝑓 ∪ {dom 𝑓})⟶𝐴)
49 df-suc 4331 . . . . . . . . 9 suc dom 𝑓 = (dom 𝑓 ∪ {dom 𝑓})
50 peano2 4553 . . . . . . . . 9 (dom 𝑓 ∈ ω → suc dom 𝑓 ∈ ω)
5149, 50eqeltrrid 2245 . . . . . . . 8 (dom 𝑓 ∈ ω → (dom 𝑓 ∪ {dom 𝑓}) ∈ ω)
5237, 51syl 14 . . . . . . 7 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → (dom 𝑓 ∪ {dom 𝑓}) ∈ ω)
53 omelon 4567 . . . . . . . 8 ω ∈ On
5453onelssi 4389 . . . . . . 7 ((dom 𝑓 ∪ {dom 𝑓}) ∈ ω → (dom 𝑓 ∪ {dom 𝑓}) ⊆ ω)
5552, 54syl 14 . . . . . 6 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → (dom 𝑓 ∪ {dom 𝑓}) ⊆ ω)
56 elpm2r 6608 . . . . . 6 (((𝐴 ∈ V ∧ ω ∈ V) ∧ ((𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}):(dom 𝑓 ∪ {dom 𝑓})⟶𝐴 ∧ (dom 𝑓 ∪ {dom 𝑓}) ⊆ ω)) → (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}) ∈ (𝐴pm ω))
5725, 26, 48, 55, 56syl22anc 1221 . . . . 5 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}) ∈ (𝐴pm ω))
5848fdmd 5325 . . . . . 6 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → dom (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}) = (dom 𝑓 ∪ {dom 𝑓}))
5958, 52eqeltrd 2234 . . . . 5 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → dom (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}) ∈ ω)
6020, 57, 59elrabd 2870 . . . 4 (((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) ∧ ¬ (𝐹𝑗) ∈ (𝐹𝑗)) → (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩}) ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω})
61 ennnfonelemh.dceq . . . . . 6 (𝜑 → ∀𝑥𝐴𝑦𝐴 DECID 𝑥 = 𝑦)
6261adantr 274 . . . . 5 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → ∀𝑥𝐴𝑦𝐴 DECID 𝑥 = 𝑦)
6362, 42, 17ennnfonelemdc 12111 . . . 4 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → DECID (𝐹𝑗) ∈ (𝐹𝑗))
6418, 60, 63ifcldadc 3534 . . 3 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → if((𝐹𝑗) ∈ (𝐹𝑗), 𝑓, (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩})) ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω})
652, 13, 16, 17, 64ovmpod 5945 . 2 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → (𝑓𝐺𝑗) = if((𝐹𝑗) ∈ (𝐹𝑗), 𝑓, (𝑓 ∪ {⟨dom 𝑓, (𝐹𝑗)⟩})))
6665, 64eqeltrd 2234 1 ((𝜑 ∧ (𝑓 ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω} ∧ 𝑗 ∈ ω)) → (𝑓𝐺𝑗) ∈ {𝑔 ∈ (𝐴pm ω) ∣ dom 𝑔 ∈ ω})
 Colors of variables: wff set class Syntax hints:  ¬ wn 3   → wi 4   ∧ wa 103  DECID wdc 820   = wceq 1335   ∈ wcel 2128   ≠ wne 2327  ∀wral 2435  ∃wrex 2436  {crab 2439  Vcvv 2712   ∪ cun 3100   ⊆ wss 3102  ∅c0 3394  ifcif 3505  {csn 3560  ⟨cop 3563   ↦ cmpt 4025  Ord word 4322  suc csuc 4325  ωcom 4548  ◡ccnv 4584  dom cdm 4585   “ cima 4588  ⟶wf 5165  –onto→wfo 5167  ‘cfv 5169  (class class class)co 5821   ∈ cmpo 5823  freccfrec 6334   ↑pm cpm 6591  0cc0 7726  1c1 7727   + caddc 7729   − cmin 8040  ℕ0cn0 9084  ℤcz 9161  seqcseq 10337 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 105  ax-ia2 106  ax-ia3 107  ax-in1 604  ax-in2 605  ax-io 699  ax-5 1427  ax-7 1428  ax-gen 1429  ax-ie1 1473  ax-ie2 1474  ax-8 1484  ax-10 1485  ax-11 1486  ax-i12 1487  ax-bndl 1489  ax-4 1490  ax-17 1506  ax-i9 1510  ax-ial 1514  ax-i5r 1515  ax-13 2130  ax-14 2131  ax-ext 2139  ax-coll 4079  ax-sep 4082  ax-nul 4090  ax-pow 4135  ax-pr 4169  ax-un 4393  ax-setind 4495  ax-iinf 4546 This theorem depends on definitions:  df-bi 116  df-dc 821  df-3an 965  df-tru 1338  df-fal 1341  df-nf 1441  df-sb 1743  df-eu 2009  df-mo 2010  df-clab 2144  df-cleq 2150  df-clel 2153  df-nfc 2288  df-ne 2328  df-ral 2440  df-rex 2441  df-reu 2442  df-rab 2444  df-v 2714  df-sbc 2938  df-csb 3032  df-dif 3104  df-un 3106  df-in 3108  df-ss 3115  df-nul 3395  df-if 3506  df-pw 3545  df-sn 3566  df-pr 3567  df-op 3569  df-uni 3773  df-int 3808  df-iun 3851  df-br 3966  df-opab 4026  df-mpt 4027  df-tr 4063  df-id 4253  df-iord 4326  df-on 4328  df-suc 4331  df-iom 4549  df-xp 4591  df-rel 4592  df-cnv 4593  df-co 4594  df-dm 4595  df-rn 4596  df-res 4597  df-ima 4598  df-iota 5134  df-fun 5171  df-fn 5172  df-f 5173  df-f1 5174  df-fo 5175  df-f1o 5176  df-fv 5177  df-ov 5824  df-oprab 5825  df-mpo 5826  df-pm 6593 This theorem is referenced by:  ennnfonelemh  12116  ennnfonelem0  12117  ennnfonelemp1  12118  ennnfonelemom  12120
 Copyright terms: Public domain W3C validator