Metamath Proof Explorer


Theorem sdc

Description: Strong dependent choice. Suppose we may choose an element of A such that property ps holds, and suppose that if we have already chosen the first k elements (represented here by a function from 1 ... k to A ), we may choose another element so that all k + 1 elements taken together have property ps . Then there exists an infinite sequence of elements of A such that the first n terms of this sequence satisfy ps for all n . This theorem allows to construct infinite sequences where each term depends on all the previous terms in the sequence. (Contributed by Jeff Madsen, 2-Sep-2009) (Proof shortened by Mario Carneiro, 3-Jun-2014)

Ref Expression
Hypotheses sdc.1 ⊢ Z = ℤ ≥ M
sdc.2 ⊢ g = f ↾ M … n → ψ ↔ χ
sdc.3 ⊢ n = M → ψ ↔ τ
sdc.4 ⊢ n = k → ψ ↔ θ
sdc.5 ⊢ g = h ∧ n = k + 1 → ψ ↔ σ
sdc.6 ⊢ φ → A ∈ V
sdc.7 ⊢ φ → M ∈ ℤ
sdc.8 ⊢ φ → ∃ g g : M ⟶ A ∧ τ
sdc.9 ⊢ φ ∧ k ∈ Z → g : M … k ⟶ A ∧ θ → ∃ h h : M … k + 1 ⟶ A ∧ g = h ↾ M … k ∧ σ
Assertion sdc ⊢ φ → ∃ f f : Z ⟶ A ∧ ∀ n ∈ Z χ

Proof

Step Hyp Ref Expression
1 sdc.1 ⊢ Z = ℤ ≥ M
2 sdc.2 ⊢ g = f ↾ M … n → ψ ↔ χ
3 sdc.3 ⊢ n = M → ψ ↔ τ
4 sdc.4 ⊢ n = k → ψ ↔ θ
5 sdc.5 ⊢ g = h ∧ n = k + 1 → ψ ↔ σ
6 sdc.6 ⊢ φ → A ∈ V
7 sdc.7 ⊢ φ → M ∈ ℤ
8 sdc.8 ⊢ φ → ∃ g g : M ⟶ A ∧ τ
9 sdc.9 ⊢ φ ∧ k ∈ Z → g : M … k ⟶ A ∧ θ → ∃ h h : M … k + 1 ⟶ A ∧ g = h ↾ M … k ∧ σ
10 eqid ⊢ g | ∃ n ∈ Z g : M … n ⟶ A ∧ ψ = g | ∃ n ∈ Z g : M … n ⟶ A ∧ ψ
11 eqid ⊢ Z = Z
12 oveq2 ⊢ n = k → M … n = M … k
13 12 feq2d ⊢ n = k → g : M … n ⟶ A ↔ g : M … k ⟶ A
14 13 4 anbi12d ⊢ n = k → g : M … n ⟶ A ∧ ψ ↔ g : M … k ⟶ A ∧ θ
15 14 cbvrexvw ⊢ ∃ n ∈ Z g : M … n ⟶ A ∧ ψ ↔ ∃ k ∈ Z g : M … k ⟶ A ∧ θ
16 15 abbii ⊢ g | ∃ n ∈ Z g : M … n ⟶ A ∧ ψ = g | ∃ k ∈ Z g : M … k ⟶ A ∧ θ
17 eqid ⊢ h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ = h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ
18 11 16 17 mpoeq123i ⊢ j ∈ Z , f ∈ g | ∃ n ∈ Z g : M … n ⟶ A ∧ ψ ⟼ h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ = j ∈ Z , f ∈ g | ∃ k ∈ Z g : M … k ⟶ A ∧ θ ⟼ h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ
19 eqidd ⊢ j = y → h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ = h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ
20 eqeq1 ⊢ f = x → f = h ↾ M … k ↔ x = h ↾ M … k
21 20 3anbi2d ⊢ f = x → h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ ↔ h : M … k + 1 ⟶ A ∧ x = h ↾ M … k ∧ σ
22 21 rexbidv ⊢ f = x → ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ ↔ ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ x = h ↾ M … k ∧ σ
23 22 abbidv ⊢ f = x → h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ = h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ x = h ↾ M … k ∧ σ
24 19 23 cbvmpov ⊢ j ∈ Z , f ∈ g | ∃ n ∈ Z g : M … n ⟶ A ∧ ψ ⟼ h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ = y ∈ Z , x ∈ g | ∃ n ∈ Z g : M … n ⟶ A ∧ ψ ⟼ h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ x = h ↾ M … k ∧ σ
25 18 24 eqtr3i ⊢ j ∈ Z , f ∈ g | ∃ k ∈ Z g : M … k ⟶ A ∧ θ ⟼ h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ f = h ↾ M … k ∧ σ = y ∈ Z , x ∈ g | ∃ n ∈ Z g : M … n ⟶ A ∧ ψ ⟼ h | ∃ k ∈ Z h : M … k + 1 ⟶ A ∧ x = h ↾ M … k ∧ σ
26 1 2 3 4 5 6 7 8 9 10 25 sdclem1 ⊢ φ → ∃ f f : Z ⟶ A ∧ ∀ n ∈ Z χ