Metamath Proof Explorer


Theorem dfsmo2

Description: Alternate definition of a strictly monotone ordinal function. (Contributed by Mario Carneiro, 4-Mar-2013)

Ref Expression
Assertion dfsmo2 ( Smo 𝐹 ↔ ( 𝐹 : dom 𝐹 ⟶ On ∧ Ord dom 𝐹 ∧ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) )

Proof

Step Hyp Ref Expression
1 df-smo ⊢ ( Smo 𝐹 ↔ ( 𝐹 : dom 𝐹 ⟶ On ∧ Ord dom 𝐹 ∧ ∀ 𝑦 ∈ dom 𝐹 ∀ 𝑥 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) )
2 ralcom ⊢ ( ∀ 𝑦 ∈ dom 𝐹 ∀ 𝑥 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ↔ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) )
3 impexp ⊢ ( ( ( 𝑦 ∈ dom 𝐹 ∧ 𝑦 ∈ 𝑥 ) → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ↔ ( 𝑦 ∈ dom 𝐹 → ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) )
4 simpr ⊢ ( ( 𝑦 ∈ dom 𝐹 ∧ 𝑦 ∈ 𝑥 ) → 𝑦 ∈ 𝑥 )
5 ordtr1 ⊢ ( Ord dom 𝐹 → ( ( 𝑦 ∈ 𝑥 ∧ 𝑥 ∈ dom 𝐹 ) → 𝑦 ∈ dom 𝐹 ) )
6 5 3impib ⊢ ( ( Ord dom 𝐹 ∧ 𝑦 ∈ 𝑥 ∧ 𝑥 ∈ dom 𝐹 ) → 𝑦 ∈ dom 𝐹 )
7 6 3com23 ⊢ ( ( Ord dom 𝐹 ∧ 𝑥 ∈ dom 𝐹 ∧ 𝑦 ∈ 𝑥 ) → 𝑦 ∈ dom 𝐹 )
8 simp3 ⊢ ( ( Ord dom 𝐹 ∧ 𝑥 ∈ dom 𝐹 ∧ 𝑦 ∈ 𝑥 ) → 𝑦 ∈ 𝑥 )
9 7 8 jca ⊢ ( ( Ord dom 𝐹 ∧ 𝑥 ∈ dom 𝐹 ∧ 𝑦 ∈ 𝑥 ) → ( 𝑦 ∈ dom 𝐹 ∧ 𝑦 ∈ 𝑥 ) )
10 9 3expia ⊢ ( ( Ord dom 𝐹 ∧ 𝑥 ∈ dom 𝐹 ) → ( 𝑦 ∈ 𝑥 → ( 𝑦 ∈ dom 𝐹 ∧ 𝑦 ∈ 𝑥 ) ) )
11 4 10 impbid2 ⊢ ( ( Ord dom 𝐹 ∧ 𝑥 ∈ dom 𝐹 ) → ( ( 𝑦 ∈ dom 𝐹 ∧ 𝑦 ∈ 𝑥 ) ↔ 𝑦 ∈ 𝑥 ) )
12 11 imbi1d ⊢ ( ( Ord dom 𝐹 ∧ 𝑥 ∈ dom 𝐹 ) → ( ( ( 𝑦 ∈ dom 𝐹 ∧ 𝑦 ∈ 𝑥 ) → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ↔ ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) )
13 3 12 bitr3id ⊢ ( ( Ord dom 𝐹 ∧ 𝑥 ∈ dom 𝐹 ) → ( ( 𝑦 ∈ dom 𝐹 → ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) ↔ ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) )
14 13 ralbidv2 ⊢ ( ( Ord dom 𝐹 ∧ 𝑥 ∈ dom 𝐹 ) → ( ∀ 𝑦 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ↔ ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) )
15 14 ralbidva ⊢ ( Ord dom 𝐹 → ( ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ↔ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) )
16 2 15 bitrid ⊢ ( Ord dom 𝐹 → ( ∀ 𝑦 ∈ dom 𝐹 ∀ 𝑥 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ↔ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) )
17 16 pm5.32i ⊢ ( ( Ord dom 𝐹 ∧ ∀ 𝑦 ∈ dom 𝐹 ∀ 𝑥 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) ↔ ( Ord dom 𝐹 ∧ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) )
18 17 anbi2i ⊢ ( ( 𝐹 : dom 𝐹 ⟶ On ∧ ( Ord dom 𝐹 ∧ ∀ 𝑦 ∈ dom 𝐹 ∀ 𝑥 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) ) ↔ ( 𝐹 : dom 𝐹 ⟶ On ∧ ( Ord dom 𝐹 ∧ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) )
19 3anass ⊢ ( ( 𝐹 : dom 𝐹 ⟶ On ∧ Ord dom 𝐹 ∧ ∀ 𝑦 ∈ dom 𝐹 ∀ 𝑥 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) ↔ ( 𝐹 : dom 𝐹 ⟶ On ∧ ( Ord dom 𝐹 ∧ ∀ 𝑦 ∈ dom 𝐹 ∀ 𝑥 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) ) )
20 3anass ⊢ ( ( 𝐹 : dom 𝐹 ⟶ On ∧ Ord dom 𝐹 ∧ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ↔ ( 𝐹 : dom 𝐹 ⟶ On ∧ ( Ord dom 𝐹 ∧ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) )
21 18 19 20 3bitr4i ⊢ ( ( 𝐹 : dom 𝐹 ⟶ On ∧ Ord dom 𝐹 ∧ ∀ 𝑦 ∈ dom 𝐹 ∀ 𝑥 ∈ dom 𝐹 ( 𝑦 ∈ 𝑥 → ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) ) ↔ ( 𝐹 : dom 𝐹 ⟶ On ∧ Ord dom 𝐹 ∧ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) )
22 1 21 bitri ⊢ ( Smo 𝐹 ↔ ( 𝐹 : dom 𝐹 ⟶ On ∧ Ord dom 𝐹 ∧ ∀ 𝑥 ∈ dom 𝐹 ∀ 𝑦 ∈ 𝑥 ( 𝐹 ‘ 𝑦 ) ∈ ( 𝐹 ‘ 𝑥 ) ) )