Mathbox for Glauco Siliprandi < Previous   Next > Nearby theorems Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  itgiccshift Structured version   Visualization version   GIF version

Theorem itgiccshift 39503
 Description: The integral of a function, 𝐹 stays the same if its closed interval domain is shifted by 𝑇. (Contributed by Glauco Siliprandi, 11-Dec-2019.)
Hypotheses
Ref Expression
itgiccshift.a (𝜑𝐴 ∈ ℝ)
itgiccshift.b (𝜑𝐵 ∈ ℝ)
itgiccshift.aleb (𝜑𝐴𝐵)
itgiccshift.f (𝜑𝐹 ∈ ((𝐴[,]𝐵)–cn→ℂ))
itgiccshift.t (𝜑𝑇 ∈ ℝ+)
itgiccshift.g 𝐺 = (𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐹‘(𝑥𝑇)))
Assertion
Ref Expression
itgiccshift (𝜑 → ∫((𝐴 + 𝑇)[,](𝐵 + 𝑇))(𝐺𝑥) d𝑥 = ∫(𝐴[,]𝐵)(𝐹𝑥) d𝑥)
Distinct variable groups:   𝑥,𝐴   𝑥,𝐵   𝑥,𝐹   𝑥,𝐺   𝑥,𝑇   𝜑,𝑥

Proof of Theorem itgiccshift
Dummy variables 𝑤 𝑦 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 itgiccshift.a . . . . 5 (𝜑𝐴 ∈ ℝ)
2 itgiccshift.b . . . . 5 (𝜑𝐵 ∈ ℝ)
3 itgiccshift.t . . . . . 6 (𝜑𝑇 ∈ ℝ+)
43rpred 11816 . . . . 5 (𝜑𝑇 ∈ ℝ)
5 itgiccshift.aleb . . . . 5 (𝜑𝐴𝐵)
61, 2, 4, 5leadd1dd 10585 . . . 4 (𝜑 → (𝐴 + 𝑇) ≤ (𝐵 + 𝑇))
76ditgpos 23526 . . 3 (𝜑 → ⨜[(𝐴 + 𝑇) → (𝐵 + 𝑇)](𝐺𝑥) d𝑥 = ∫((𝐴 + 𝑇)(,)(𝐵 + 𝑇))(𝐺𝑥) d𝑥)
81, 4readdcld 10013 . . . 4 (𝜑 → (𝐴 + 𝑇) ∈ ℝ)
92, 4readdcld 10013 . . . 4 (𝜑 → (𝐵 + 𝑇) ∈ ℝ)
10 itgiccshift.f . . . . . . . . 9 (𝜑𝐹 ∈ ((𝐴[,]𝐵)–cn→ℂ))
11 cncff 22604 . . . . . . . . 9 (𝐹 ∈ ((𝐴[,]𝐵)–cn→ℂ) → 𝐹:(𝐴[,]𝐵)⟶ℂ)
1210, 11syl 17 . . . . . . . 8 (𝜑𝐹:(𝐴[,]𝐵)⟶ℂ)
1312adantr 481 . . . . . . 7 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝐹:(𝐴[,]𝐵)⟶ℂ)
141adantr 481 . . . . . . . 8 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝐴 ∈ ℝ)
152adantr 481 . . . . . . . 8 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝐵 ∈ ℝ)
168adantr 481 . . . . . . . . . 10 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝐴 + 𝑇) ∈ ℝ)
179adantr 481 . . . . . . . . . 10 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝐵 + 𝑇) ∈ ℝ)
18 simpr 477 . . . . . . . . . 10 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)))
19 eliccre 39139 . . . . . . . . . 10 (((𝐴 + 𝑇) ∈ ℝ ∧ (𝐵 + 𝑇) ∈ ℝ ∧ 𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝑥 ∈ ℝ)
2016, 17, 18, 19syl3anc 1323 . . . . . . . . 9 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝑥 ∈ ℝ)
214adantr 481 . . . . . . . . 9 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝑇 ∈ ℝ)
2220, 21resubcld 10402 . . . . . . . 8 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝑥𝑇) ∈ ℝ)
231recnd 10012 . . . . . . . . . . . 12 (𝜑𝐴 ∈ ℂ)
244recnd 10012 . . . . . . . . . . . 12 (𝜑𝑇 ∈ ℂ)
2523, 24pncand 10337 . . . . . . . . . . 11 (𝜑 → ((𝐴 + 𝑇) − 𝑇) = 𝐴)
2625eqcomd 2627 . . . . . . . . . 10 (𝜑𝐴 = ((𝐴 + 𝑇) − 𝑇))
2726adantr 481 . . . . . . . . 9 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝐴 = ((𝐴 + 𝑇) − 𝑇))
28 elicc2 12180 . . . . . . . . . . . . 13 (((𝐴 + 𝑇) ∈ ℝ ∧ (𝐵 + 𝑇) ∈ ℝ) → (𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↔ (𝑥 ∈ ℝ ∧ (𝐴 + 𝑇) ≤ 𝑥𝑥 ≤ (𝐵 + 𝑇))))
2916, 17, 28syl2anc 692 . . . . . . . . . . . 12 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↔ (𝑥 ∈ ℝ ∧ (𝐴 + 𝑇) ≤ 𝑥𝑥 ≤ (𝐵 + 𝑇))))
3018, 29mpbid 222 . . . . . . . . . . 11 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝑥 ∈ ℝ ∧ (𝐴 + 𝑇) ≤ 𝑥𝑥 ≤ (𝐵 + 𝑇)))
3130simp2d 1072 . . . . . . . . . 10 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝐴 + 𝑇) ≤ 𝑥)
3216, 20, 21, 31lesub1dd 10587 . . . . . . . . 9 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → ((𝐴 + 𝑇) − 𝑇) ≤ (𝑥𝑇))
3327, 32eqbrtrd 4635 . . . . . . . 8 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝐴 ≤ (𝑥𝑇))
3430simp3d 1073 . . . . . . . . . 10 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → 𝑥 ≤ (𝐵 + 𝑇))
3520, 17, 21, 34lesub1dd 10587 . . . . . . . . 9 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝑥𝑇) ≤ ((𝐵 + 𝑇) − 𝑇))
362recnd 10012 . . . . . . . . . . 11 (𝜑𝐵 ∈ ℂ)
3736, 24pncand 10337 . . . . . . . . . 10 (𝜑 → ((𝐵 + 𝑇) − 𝑇) = 𝐵)
3837adantr 481 . . . . . . . . 9 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → ((𝐵 + 𝑇) − 𝑇) = 𝐵)
3935, 38breqtrd 4639 . . . . . . . 8 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝑥𝑇) ≤ 𝐵)
4014, 15, 22, 33, 39eliccd 39137 . . . . . . 7 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝑥𝑇) ∈ (𝐴[,]𝐵))
4113, 40ffvelrnd 6316 . . . . . 6 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝐹‘(𝑥𝑇)) ∈ ℂ)
42 itgiccshift.g . . . . . 6 𝐺 = (𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐹‘(𝑥𝑇)))
4341, 42fmptd 6340 . . . . 5 (𝜑𝐺:((𝐴 + 𝑇)[,](𝐵 + 𝑇))⟶ℂ)
4443ffvelrnda 6315 . . . 4 ((𝜑𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇))) → (𝐺𝑥) ∈ ℂ)
458, 9, 44itgioo 23488 . . 3 (𝜑 → ∫((𝐴 + 𝑇)(,)(𝐵 + 𝑇))(𝐺𝑥) d𝑥 = ∫((𝐴 + 𝑇)[,](𝐵 + 𝑇))(𝐺𝑥) d𝑥)
467, 45eqtr2d 2656 . 2 (𝜑 → ∫((𝐴 + 𝑇)[,](𝐵 + 𝑇))(𝐺𝑥) d𝑥 = ⨜[(𝐴 + 𝑇) → (𝐵 + 𝑇)](𝐺𝑥) d𝑥)
47 eqid 2621 . . . 4 (𝑦 ∈ ℂ ↦ (𝑦 + 𝑇)) = (𝑦 ∈ ℂ ↦ (𝑦 + 𝑇))
4847addccncf 22627 . . . . 5 (𝑇 ∈ ℂ → (𝑦 ∈ ℂ ↦ (𝑦 + 𝑇)) ∈ (ℂ–cn→ℂ))
4924, 48syl 17 . . . 4 (𝜑 → (𝑦 ∈ ℂ ↦ (𝑦 + 𝑇)) ∈ (ℂ–cn→ℂ))
501, 2iccssred 39138 . . . . 5 (𝜑 → (𝐴[,]𝐵) ⊆ ℝ)
51 ax-resscn 9937 . . . . 5 ℝ ⊆ ℂ
5250, 51syl6ss 3595 . . . 4 (𝜑 → (𝐴[,]𝐵) ⊆ ℂ)
538, 9iccssred 39138 . . . . 5 (𝜑 → ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ⊆ ℝ)
5453, 51syl6ss 3595 . . . 4 (𝜑 → ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ⊆ ℂ)
558adantr 481 . . . . 5 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → (𝐴 + 𝑇) ∈ ℝ)
569adantr 481 . . . . 5 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → (𝐵 + 𝑇) ∈ ℝ)
5750sselda 3583 . . . . . 6 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → 𝑦 ∈ ℝ)
584adantr 481 . . . . . 6 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → 𝑇 ∈ ℝ)
5957, 58readdcld 10013 . . . . 5 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → (𝑦 + 𝑇) ∈ ℝ)
601adantr 481 . . . . . 6 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → 𝐴 ∈ ℝ)
61 simpr 477 . . . . . . . 8 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → 𝑦 ∈ (𝐴[,]𝐵))
622adantr 481 . . . . . . . . 9 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → 𝐵 ∈ ℝ)
63 elicc2 12180 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝑦 ∈ (𝐴[,]𝐵) ↔ (𝑦 ∈ ℝ ∧ 𝐴𝑦𝑦𝐵)))
6460, 62, 63syl2anc 692 . . . . . . . 8 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → (𝑦 ∈ (𝐴[,]𝐵) ↔ (𝑦 ∈ ℝ ∧ 𝐴𝑦𝑦𝐵)))
6561, 64mpbid 222 . . . . . . 7 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → (𝑦 ∈ ℝ ∧ 𝐴𝑦𝑦𝐵))
6665simp2d 1072 . . . . . 6 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → 𝐴𝑦)
6760, 57, 58, 66leadd1dd 10585 . . . . 5 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → (𝐴 + 𝑇) ≤ (𝑦 + 𝑇))
6865simp3d 1073 . . . . . 6 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → 𝑦𝐵)
6957, 62, 58, 68leadd1dd 10585 . . . . 5 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → (𝑦 + 𝑇) ≤ (𝐵 + 𝑇))
7055, 56, 59, 67, 69eliccd 39137 . . . 4 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → (𝑦 + 𝑇) ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)))
7147, 49, 52, 54, 70cncfmptssg 39386 . . 3 (𝜑 → (𝑦 ∈ (𝐴[,]𝐵) ↦ (𝑦 + 𝑇)) ∈ ((𝐴[,]𝐵)–cn→((𝐴 + 𝑇)[,](𝐵 + 𝑇))))
72 oveq1 6611 . . . . . . . . 9 (𝑥 = 𝑤 → (𝑥𝑇) = (𝑤𝑇))
7372fveq2d 6152 . . . . . . . 8 (𝑥 = 𝑤 → (𝐹‘(𝑥𝑇)) = (𝐹‘(𝑤𝑇)))
7473cbvmptv 4710 . . . . . . 7 (𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐹‘(𝑥𝑇))) = (𝑤 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐹‘(𝑤𝑇)))
751, 2, 4iccshift 39155 . . . . . . . 8 (𝜑 → ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) = {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)})
7675mpteq1d 4698 . . . . . . 7 (𝜑 → (𝑤 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐹‘(𝑤𝑇))) = (𝑤 ∈ {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)} ↦ (𝐹‘(𝑤𝑇))))
7774, 76syl5eq 2667 . . . . . 6 (𝜑 → (𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐹‘(𝑥𝑇))) = (𝑤 ∈ {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)} ↦ (𝐹‘(𝑤𝑇))))
7842, 77syl5eq 2667 . . . . 5 (𝜑𝐺 = (𝑤 ∈ {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)} ↦ (𝐹‘(𝑤𝑇))))
79 eqeq1 2625 . . . . . . . . . 10 (𝑤 = 𝑥 → (𝑤 = (𝑧 + 𝑇) ↔ 𝑥 = (𝑧 + 𝑇)))
8079rexbidv 3045 . . . . . . . . 9 (𝑤 = 𝑥 → (∃𝑧 ∈ (𝐴[,]𝐵)𝑤 = (𝑧 + 𝑇) ↔ ∃𝑧 ∈ (𝐴[,]𝐵)𝑥 = (𝑧 + 𝑇)))
81 oveq1 6611 . . . . . . . . . . 11 (𝑧 = 𝑦 → (𝑧 + 𝑇) = (𝑦 + 𝑇))
8281eqeq2d 2631 . . . . . . . . . 10 (𝑧 = 𝑦 → (𝑥 = (𝑧 + 𝑇) ↔ 𝑥 = (𝑦 + 𝑇)))
8382cbvrexv 3160 . . . . . . . . 9 (∃𝑧 ∈ (𝐴[,]𝐵)𝑥 = (𝑧 + 𝑇) ↔ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇))
8480, 83syl6bb 276 . . . . . . . 8 (𝑤 = 𝑥 → (∃𝑧 ∈ (𝐴[,]𝐵)𝑤 = (𝑧 + 𝑇) ↔ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)))
8584cbvrabv 3185 . . . . . . 7 {𝑤 ∈ ℂ ∣ ∃𝑧 ∈ (𝐴[,]𝐵)𝑤 = (𝑧 + 𝑇)} = {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)}
8685eqcomi 2630 . . . . . 6 {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)} = {𝑤 ∈ ℂ ∣ ∃𝑧 ∈ (𝐴[,]𝐵)𝑤 = (𝑧 + 𝑇)}
87 eqid 2621 . . . . . 6 (𝑤 ∈ {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)} ↦ (𝐹‘(𝑤𝑇))) = (𝑤 ∈ {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)} ↦ (𝐹‘(𝑤𝑇)))
8852, 24, 86, 10, 87cncfshift 39390 . . . . 5 (𝜑 → (𝑤 ∈ {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)} ↦ (𝐹‘(𝑤𝑇))) ∈ ({𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)}–cn→ℂ))
8978, 88eqeltrd 2698 . . . 4 (𝜑𝐺 ∈ ({𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)}–cn→ℂ))
9043feqmptd 6206 . . . 4 (𝜑𝐺 = (𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐺𝑥)))
9175eqcomd 2627 . . . . 5 (𝜑 → {𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)} = ((𝐴 + 𝑇)[,](𝐵 + 𝑇)))
9291oveq1d 6619 . . . 4 (𝜑 → ({𝑥 ∈ ℂ ∣ ∃𝑦 ∈ (𝐴[,]𝐵)𝑥 = (𝑦 + 𝑇)}–cn→ℂ) = (((𝐴 + 𝑇)[,](𝐵 + 𝑇))–cn→ℂ))
9389, 90, 923eltr3d 2712 . . 3 (𝜑 → (𝑥 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐺𝑥)) ∈ (((𝐴 + 𝑇)[,](𝐵 + 𝑇))–cn→ℂ))
94 ioosscn 39127 . . . . . 6 (𝐴(,)𝐵) ⊆ ℂ
9594a1i 11 . . . . 5 (𝜑 → (𝐴(,)𝐵) ⊆ ℂ)
96 1cnd 10000 . . . . 5 (𝜑 → 1 ∈ ℂ)
97 ssid 3603 . . . . . 6 ℂ ⊆ ℂ
9897a1i 11 . . . . 5 (𝜑 → ℂ ⊆ ℂ)
9995, 96, 98constcncfg 39387 . . . 4 (𝜑 → (𝑦 ∈ (𝐴(,)𝐵) ↦ 1) ∈ ((𝐴(,)𝐵)–cn→ℂ))
100 fconstmpt 5123 . . . . 5 ((𝐴(,)𝐵) × {1}) = (𝑦 ∈ (𝐴(,)𝐵) ↦ 1)
101 ioombl 23240 . . . . . . 7 (𝐴(,)𝐵) ∈ dom vol
102101a1i 11 . . . . . 6 (𝜑 → (𝐴(,)𝐵) ∈ dom vol)
103 ioovolcl 23244 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (vol‘(𝐴(,)𝐵)) ∈ ℝ)
1041, 2, 103syl2anc 692 . . . . . 6 (𝜑 → (vol‘(𝐴(,)𝐵)) ∈ ℝ)
105 iblconst 23490 . . . . . 6 (((𝐴(,)𝐵) ∈ dom vol ∧ (vol‘(𝐴(,)𝐵)) ∈ ℝ ∧ 1 ∈ ℂ) → ((𝐴(,)𝐵) × {1}) ∈ 𝐿1)
106102, 104, 96, 105syl3anc 1323 . . . . 5 (𝜑 → ((𝐴(,)𝐵) × {1}) ∈ 𝐿1)
107100, 106syl5eqelr 2703 . . . 4 (𝜑 → (𝑦 ∈ (𝐴(,)𝐵) ↦ 1) ∈ 𝐿1)
10899, 107elind 3776 . . 3 (𝜑 → (𝑦 ∈ (𝐴(,)𝐵) ↦ 1) ∈ (((𝐴(,)𝐵)–cn→ℂ) ∩ 𝐿1))
10950resmptd 5411 . . . . . . 7 (𝜑 → ((𝑦 ∈ ℝ ↦ (𝑦 + 𝑇)) ↾ (𝐴[,]𝐵)) = (𝑦 ∈ (𝐴[,]𝐵) ↦ (𝑦 + 𝑇)))
110109eqcomd 2627 . . . . . 6 (𝜑 → (𝑦 ∈ (𝐴[,]𝐵) ↦ (𝑦 + 𝑇)) = ((𝑦 ∈ ℝ ↦ (𝑦 + 𝑇)) ↾ (𝐴[,]𝐵)))
111110oveq2d 6620 . . . . 5 (𝜑 → (ℝ D (𝑦 ∈ (𝐴[,]𝐵) ↦ (𝑦 + 𝑇))) = (ℝ D ((𝑦 ∈ ℝ ↦ (𝑦 + 𝑇)) ↾ (𝐴[,]𝐵))))
11251a1i 11 . . . . . 6 (𝜑 → ℝ ⊆ ℂ)
113112sselda 3583 . . . . . . . 8 ((𝜑𝑦 ∈ ℝ) → 𝑦 ∈ ℂ)
11424adantr 481 . . . . . . . 8 ((𝜑𝑦 ∈ ℝ) → 𝑇 ∈ ℂ)
115113, 114addcld 10003 . . . . . . 7 ((𝜑𝑦 ∈ ℝ) → (𝑦 + 𝑇) ∈ ℂ)
116 eqid 2621 . . . . . . 7 (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇)) = (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇))
117115, 116fmptd 6340 . . . . . 6 (𝜑 → (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇)):ℝ⟶ℂ)
118 ssid 3603 . . . . . . 7 ℝ ⊆ ℝ
119118a1i 11 . . . . . 6 (𝜑 → ℝ ⊆ ℝ)
120 eqid 2621 . . . . . . 7 (TopOpen‘ℂfld) = (TopOpen‘ℂfld)
121120tgioo2 22514 . . . . . . 7 (topGen‘ran (,)) = ((TopOpen‘ℂfld) ↾t ℝ)
122120, 121dvres 23581 . . . . . 6 (((ℝ ⊆ ℂ ∧ (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇)):ℝ⟶ℂ) ∧ (ℝ ⊆ ℝ ∧ (𝐴[,]𝐵) ⊆ ℝ)) → (ℝ D ((𝑦 ∈ ℝ ↦ (𝑦 + 𝑇)) ↾ (𝐴[,]𝐵))) = ((ℝ D (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇))) ↾ ((int‘(topGen‘ran (,)))‘(𝐴[,]𝐵))))
123112, 117, 119, 50, 122syl22anc 1324 . . . . 5 (𝜑 → (ℝ D ((𝑦 ∈ ℝ ↦ (𝑦 + 𝑇)) ↾ (𝐴[,]𝐵))) = ((ℝ D (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇))) ↾ ((int‘(topGen‘ran (,)))‘(𝐴[,]𝐵))))
124111, 123eqtrd 2655 . . . 4 (𝜑 → (ℝ D (𝑦 ∈ (𝐴[,]𝐵) ↦ (𝑦 + 𝑇))) = ((ℝ D (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇))) ↾ ((int‘(topGen‘ran (,)))‘(𝐴[,]𝐵))))
125 iccntr 22532 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((int‘(topGen‘ran (,)))‘(𝐴[,]𝐵)) = (𝐴(,)𝐵))
1261, 2, 125syl2anc 692 . . . . 5 (𝜑 → ((int‘(topGen‘ran (,)))‘(𝐴[,]𝐵)) = (𝐴(,)𝐵))
127126reseq2d 5356 . . . 4 (𝜑 → ((ℝ D (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇))) ↾ ((int‘(topGen‘ran (,)))‘(𝐴[,]𝐵))) = ((ℝ D (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇))) ↾ (𝐴(,)𝐵)))
128 reelprrecn 9972 . . . . . . . 8 ℝ ∈ {ℝ, ℂ}
129128a1i 11 . . . . . . 7 (𝜑 → ℝ ∈ {ℝ, ℂ})
130 1cnd 10000 . . . . . . 7 ((𝜑𝑦 ∈ ℝ) → 1 ∈ ℂ)
131129dvmptid 23626 . . . . . . 7 (𝜑 → (ℝ D (𝑦 ∈ ℝ ↦ 𝑦)) = (𝑦 ∈ ℝ ↦ 1))
132 0cnd 9977 . . . . . . 7 ((𝜑𝑦 ∈ ℝ) → 0 ∈ ℂ)
133129, 24dvmptc 23627 . . . . . . 7 (𝜑 → (ℝ D (𝑦 ∈ ℝ ↦ 𝑇)) = (𝑦 ∈ ℝ ↦ 0))
134129, 113, 130, 131, 114, 132, 133dvmptadd 23629 . . . . . 6 (𝜑 → (ℝ D (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇))) = (𝑦 ∈ ℝ ↦ (1 + 0)))
135134reseq1d 5355 . . . . 5 (𝜑 → ((ℝ D (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇))) ↾ (𝐴(,)𝐵)) = ((𝑦 ∈ ℝ ↦ (1 + 0)) ↾ (𝐴(,)𝐵)))
136 ioossre 12177 . . . . . . 7 (𝐴(,)𝐵) ⊆ ℝ
137136a1i 11 . . . . . 6 (𝜑 → (𝐴(,)𝐵) ⊆ ℝ)
138137resmptd 5411 . . . . 5 (𝜑 → ((𝑦 ∈ ℝ ↦ (1 + 0)) ↾ (𝐴(,)𝐵)) = (𝑦 ∈ (𝐴(,)𝐵) ↦ (1 + 0)))
139 1p0e1 11077 . . . . . . 7 (1 + 0) = 1
140139mpteq2i 4701 . . . . . 6 (𝑦 ∈ (𝐴(,)𝐵) ↦ (1 + 0)) = (𝑦 ∈ (𝐴(,)𝐵) ↦ 1)
141140a1i 11 . . . . 5 (𝜑 → (𝑦 ∈ (𝐴(,)𝐵) ↦ (1 + 0)) = (𝑦 ∈ (𝐴(,)𝐵) ↦ 1))
142135, 138, 1413eqtrd 2659 . . . 4 (𝜑 → ((ℝ D (𝑦 ∈ ℝ ↦ (𝑦 + 𝑇))) ↾ (𝐴(,)𝐵)) = (𝑦 ∈ (𝐴(,)𝐵) ↦ 1))
143124, 127, 1423eqtrd 2659 . . 3 (𝜑 → (ℝ D (𝑦 ∈ (𝐴[,]𝐵) ↦ (𝑦 + 𝑇))) = (𝑦 ∈ (𝐴(,)𝐵) ↦ 1))
144 fveq2 6148 . . 3 (𝑥 = (𝑦 + 𝑇) → (𝐺𝑥) = (𝐺‘(𝑦 + 𝑇)))
145 oveq1 6611 . . 3 (𝑦 = 𝐴 → (𝑦 + 𝑇) = (𝐴 + 𝑇))
146 oveq1 6611 . . 3 (𝑦 = 𝐵 → (𝑦 + 𝑇) = (𝐵 + 𝑇))
1471, 2, 5, 71, 93, 108, 143, 144, 145, 146, 8, 9itgsubsticc 39499 . 2 (𝜑 → ⨜[(𝐴 + 𝑇) → (𝐵 + 𝑇)](𝐺𝑥) d𝑥 = ⨜[𝐴𝐵]((𝐺‘(𝑦 + 𝑇)) · 1) d𝑦)
1485ditgpos 23526 . . 3 (𝜑 → ⨜[𝐴𝐵]((𝐺‘(𝑦 + 𝑇)) · 1) d𝑦 = ∫(𝐴(,)𝐵)((𝐺‘(𝑦 + 𝑇)) · 1) d𝑦)
14943adantr 481 . . . . . 6 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → 𝐺:((𝐴 + 𝑇)[,](𝐵 + 𝑇))⟶ℂ)
150149, 70ffvelrnd 6316 . . . . 5 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → (𝐺‘(𝑦 + 𝑇)) ∈ ℂ)
151 1cnd 10000 . . . . 5 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → 1 ∈ ℂ)
152150, 151mulcld 10004 . . . 4 ((𝜑𝑦 ∈ (𝐴[,]𝐵)) → ((𝐺‘(𝑦 + 𝑇)) · 1) ∈ ℂ)
1531, 2, 152itgioo 23488 . . 3 (𝜑 → ∫(𝐴(,)𝐵)((𝐺‘(𝑦 + 𝑇)) · 1) d𝑦 = ∫(𝐴[,]𝐵)((𝐺‘(𝑦 + 𝑇)) · 1) d𝑦)
154 oveq1 6611 . . . . . . 7 (𝑦 = 𝑥 → (𝑦 + 𝑇) = (𝑥 + 𝑇))
155154fveq2d 6152 . . . . . 6 (𝑦 = 𝑥 → (𝐺‘(𝑦 + 𝑇)) = (𝐺‘(𝑥 + 𝑇)))
156155oveq1d 6619 . . . . 5 (𝑦 = 𝑥 → ((𝐺‘(𝑦 + 𝑇)) · 1) = ((𝐺‘(𝑥 + 𝑇)) · 1))
157156cbvitgv 23449 . . . 4 ∫(𝐴[,]𝐵)((𝐺‘(𝑦 + 𝑇)) · 1) d𝑦 = ∫(𝐴[,]𝐵)((𝐺‘(𝑥 + 𝑇)) · 1) d𝑥
15843adantr 481 . . . . . . . 8 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝐺:((𝐴 + 𝑇)[,](𝐵 + 𝑇))⟶ℂ)
1598adantr 481 . . . . . . . . 9 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝐴 + 𝑇) ∈ ℝ)
1609adantr 481 . . . . . . . . 9 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝐵 + 𝑇) ∈ ℝ)
16150sselda 3583 . . . . . . . . . 10 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝑥 ∈ ℝ)
1624adantr 481 . . . . . . . . . 10 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝑇 ∈ ℝ)
163161, 162readdcld 10013 . . . . . . . . 9 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝑥 + 𝑇) ∈ ℝ)
1641adantr 481 . . . . . . . . . 10 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝐴 ∈ ℝ)
1651rexrd 10033 . . . . . . . . . . . 12 (𝜑𝐴 ∈ ℝ*)
166165adantr 481 . . . . . . . . . . 11 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝐴 ∈ ℝ*)
1672rexrd 10033 . . . . . . . . . . . 12 (𝜑𝐵 ∈ ℝ*)
168167adantr 481 . . . . . . . . . . 11 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝐵 ∈ ℝ*)
169 simpr 477 . . . . . . . . . . 11 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝑥 ∈ (𝐴[,]𝐵))
170 iccgelb 12172 . . . . . . . . . . 11 ((𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝑥 ∈ (𝐴[,]𝐵)) → 𝐴𝑥)
171166, 168, 169, 170syl3anc 1323 . . . . . . . . . 10 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝐴𝑥)
172164, 161, 162, 171leadd1dd 10585 . . . . . . . . 9 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝐴 + 𝑇) ≤ (𝑥 + 𝑇))
1732adantr 481 . . . . . . . . . 10 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝐵 ∈ ℝ)
174 iccleub 12171 . . . . . . . . . . 11 ((𝐴 ∈ ℝ*𝐵 ∈ ℝ*𝑥 ∈ (𝐴[,]𝐵)) → 𝑥𝐵)
175166, 168, 169, 174syl3anc 1323 . . . . . . . . . 10 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝑥𝐵)
176161, 173, 162, 175leadd1dd 10585 . . . . . . . . 9 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝑥 + 𝑇) ≤ (𝐵 + 𝑇))
177159, 160, 163, 172, 176eliccd 39137 . . . . . . . 8 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝑥 + 𝑇) ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)))
178158, 177ffvelrnd 6316 . . . . . . 7 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝐺‘(𝑥 + 𝑇)) ∈ ℂ)
179178mulid1d 10001 . . . . . 6 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → ((𝐺‘(𝑥 + 𝑇)) · 1) = (𝐺‘(𝑥 + 𝑇)))
18042, 74eqtri 2643 . . . . . . . 8 𝐺 = (𝑤 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐹‘(𝑤𝑇)))
181180a1i 11 . . . . . . 7 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝐺 = (𝑤 ∈ ((𝐴 + 𝑇)[,](𝐵 + 𝑇)) ↦ (𝐹‘(𝑤𝑇))))
182 oveq1 6611 . . . . . . . . 9 (𝑤 = (𝑥 + 𝑇) → (𝑤𝑇) = ((𝑥 + 𝑇) − 𝑇))
183182fveq2d 6152 . . . . . . . 8 (𝑤 = (𝑥 + 𝑇) → (𝐹‘(𝑤𝑇)) = (𝐹‘((𝑥 + 𝑇) − 𝑇)))
184161recnd 10012 . . . . . . . . . 10 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝑥 ∈ ℂ)
18524adantr 481 . . . . . . . . . 10 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → 𝑇 ∈ ℂ)
186184, 185pncand 10337 . . . . . . . . 9 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → ((𝑥 + 𝑇) − 𝑇) = 𝑥)
187186fveq2d 6152 . . . . . . . 8 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝐹‘((𝑥 + 𝑇) − 𝑇)) = (𝐹𝑥))
188183, 187sylan9eqr 2677 . . . . . . 7 (((𝜑𝑥 ∈ (𝐴[,]𝐵)) ∧ 𝑤 = (𝑥 + 𝑇)) → (𝐹‘(𝑤𝑇)) = (𝐹𝑥))
18912ffvelrnda 6315 . . . . . . 7 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝐹𝑥) ∈ ℂ)
190181, 188, 177, 189fvmptd 6245 . . . . . 6 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → (𝐺‘(𝑥 + 𝑇)) = (𝐹𝑥))
191179, 190eqtrd 2655 . . . . 5 ((𝜑𝑥 ∈ (𝐴[,]𝐵)) → ((𝐺‘(𝑥 + 𝑇)) · 1) = (𝐹𝑥))
192191itgeq2dv 23454 . . . 4 (𝜑 → ∫(𝐴[,]𝐵)((𝐺‘(𝑥 + 𝑇)) · 1) d𝑥 = ∫(𝐴[,]𝐵)(𝐹𝑥) d𝑥)
193157, 192syl5eq 2667 . . 3 (𝜑 → ∫(𝐴[,]𝐵)((𝐺‘(𝑦 + 𝑇)) · 1) d𝑦 = ∫(𝐴[,]𝐵)(𝐹𝑥) d𝑥)
194148, 153, 1933eqtrd 2659 . 2 (𝜑 → ⨜[𝐴𝐵]((𝐺‘(𝑦 + 𝑇)) · 1) d𝑦 = ∫(𝐴[,]𝐵)(𝐹𝑥) d𝑥)
19546, 147, 1943eqtrd 2659 1 (𝜑 → ∫((𝐴 + 𝑇)[,](𝐵 + 𝑇))(𝐺𝑥) d𝑥 = ∫(𝐴[,]𝐵)(𝐹𝑥) d𝑥)
 Colors of variables: wff setvar class Syntax hints:   → wi 4   ↔ wb 196   ∧ wa 384   ∧ w3a 1036   = wceq 1480   ∈ wcel 1987  ∃wrex 2908  {crab 2911   ⊆ wss 3555  {csn 4148  {cpr 4150   class class class wbr 4613   ↦ cmpt 4673   × cxp 5072  dom cdm 5074  ran crn 5075   ↾ cres 5076  ⟶wf 5843  ‘cfv 5847  (class class class)co 6604  ℂcc 9878  ℝcr 9879  0cc0 9880  1c1 9881   + caddc 9883   · cmul 9885  ℝ*cxr 10017   ≤ cle 10019   − cmin 10210  ℝ+crp 11776  (,)cioo 12117  [,]cicc 12120  TopOpenctopn 16003  topGenctg 16019  ℂfldccnfld 19665  intcnt 20731  –cn→ccncf 22587  volcvol 23139  𝐿1cibl 23292  ∫citg 23293  ⨜cdit 23516   D cdv 23533 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1719  ax-4 1734  ax-5 1836  ax-6 1885  ax-7 1932  ax-8 1989  ax-9 1996  ax-10 2016  ax-11 2031  ax-12 2044  ax-13 2245  ax-ext 2601  ax-rep 4731  ax-sep 4741  ax-nul 4749  ax-pow 4803  ax-pr 4867  ax-un 6902  ax-inf2 8482  ax-cc 9201  ax-cnex 9936  ax-resscn 9937  ax-1cn 9938  ax-icn 9939  ax-addcl 9940  ax-addrcl 9941  ax-mulcl 9942  ax-mulrcl 9943  ax-mulcom 9944  ax-addass 9945  ax-mulass 9946  ax-distr 9947  ax-i2m1 9948  ax-1ne0 9949  ax-1rid 9950  ax-rnegex 9951  ax-rrecex 9952  ax-cnre 9953  ax-pre-lttri 9954  ax-pre-lttrn 9955  ax-pre-ltadd 9956  ax-pre-mulgt0 9957  ax-pre-sup 9958  ax-addf 9959  ax-mulf 9960 This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1037  df-3an 1038  df-tru 1483  df-fal 1486  df-ex 1702  df-nf 1707  df-sb 1878  df-eu 2473  df-mo 2474  df-clab 2608  df-cleq 2614  df-clel 2617  df-nfc 2750  df-ne 2791  df-nel 2894  df-ral 2912  df-rex 2913  df-reu 2914  df-rmo 2915  df-rab 2916  df-v 3188  df-sbc 3418  df-csb 3515  df-dif 3558  df-un 3560  df-in 3562  df-ss 3569  df-pss 3571  df-nul 3892  df-if 4059  df-pw 4132  df-sn 4149  df-pr 4151  df-tp 4153  df-op 4155  df-uni 4403  df-int 4441  df-iun 4487  df-iin 4488  df-disj 4584  df-br 4614  df-opab 4674  df-mpt 4675  df-tr 4713  df-eprel 4985  df-id 4989  df-po 4995  df-so 4996  df-fr 5033  df-se 5034  df-we 5035  df-xp 5080  df-rel 5081  df-cnv 5082  df-co 5083  df-dm 5084  df-rn 5085  df-res 5086  df-ima 5087  df-pred 5639  df-ord 5685  df-on 5686  df-lim 5687  df-suc 5688  df-iota 5810  df-fun 5849  df-fn 5850  df-f 5851  df-f1 5852  df-fo 5853  df-f1o 5854  df-fv 5855  df-isom 5856  df-riota 6565  df-ov 6607  df-oprab 6608  df-mpt2 6609  df-of 6850  df-ofr 6851  df-om 7013  df-1st 7113  df-2nd 7114  df-supp 7241  df-wrecs 7352  df-recs 7413  df-rdg 7451  df-1o 7505  df-2o 7506  df-oadd 7509  df-omul 7510  df-er 7687  df-map 7804  df-pm 7805  df-ixp 7853  df-en 7900  df-dom 7901  df-sdom 7902  df-fin 7903  df-fsupp 8220  df-fi 8261  df-sup 8292  df-inf 8293  df-oi 8359  df-card 8709  df-acn 8712  df-cda 8934  df-pnf 10020  df-mnf 10021  df-xr 10022  df-ltxr 10023  df-le 10024  df-sub 10212  df-neg 10213  df-div 10629  df-nn 10965  df-2 11023  df-3 11024  df-4 11025  df-5 11026  df-6 11027  df-7 11028  df-8 11029  df-9 11030  df-n0 11237  df-z 11322  df-dec 11438  df-uz 11632  df-q 11733  df-rp 11777  df-xneg 11890  df-xadd 11891  df-xmul 11892  df-ioo 12121  df-ioc 12122  df-ico 12123  df-icc 12124  df-fz 12269  df-fzo 12407  df-fl 12533  df-mod 12609  df-seq 12742  df-exp 12801  df-hash 13058  df-cj 13773  df-re 13774  df-im 13775  df-sqrt 13909  df-abs 13910  df-limsup 14136  df-clim 14153  df-rlim 14154  df-sum 14351  df-struct 15783  df-ndx 15784  df-slot 15785  df-base 15786  df-sets 15787  df-ress 15788  df-plusg 15875  df-mulr 15876  df-starv 15877  df-sca 15878  df-vsca 15879  df-ip 15880  df-tset 15881  df-ple 15882  df-ds 15885  df-unif 15886  df-hom 15887  df-cco 15888  df-rest 16004  df-topn 16005  df-0g 16023  df-gsum 16024  df-topgen 16025  df-pt 16026  df-prds 16029  df-xrs 16083  df-qtop 16088  df-imas 16089  df-xps 16091  df-mre 16167  df-mrc 16168  df-acs 16170  df-mgm 17163  df-sgrp 17205  df-mnd 17216  df-submnd 17257  df-mulg 17462  df-cntz 17671  df-cmn 18116  df-psmet 19657  df-xmet 19658  df-met 19659  df-bl 19660  df-mopn 19661  df-fbas 19662  df-fg 19663  df-cnfld 19666  df-top 20621  df-bases 20622  df-topon 20623  df-topsp 20624  df-cld 20733  df-ntr 20734  df-cls 20735  df-nei 20812  df-lp 20850  df-perf 20851  df-cn 20941  df-cnp 20942  df-haus 21029  df-cmp 21100  df-tx 21275  df-hmeo 21468  df-fil 21560  df-fm 21652  df-flim 21653  df-flf 21654  df-xms 22035  df-ms 22036  df-tms 22037  df-cncf 22589  df-ovol 23140  df-vol 23141  df-mbf 23294  df-itg1 23295  df-itg2 23296  df-ibl 23297  df-itg 23298  df-0p 23343  df-ditg 23517  df-limc 23536  df-dv 23537 This theorem is referenced by:  fourierdlem81  39711
 Copyright terms: Public domain W3C validator