Metamath Proof Explorer


Theorem dfprop2

Description: Every sentence of propositional calculus is either a variable encoded as a natural number, a negation of a sentence of propositional calculus, or an implication between two sentences of propositional calculus. (Contributed by Thomas van Maaren, 21-Aug-2026)

Ref Expression
Assertion dfprop2 PROP ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) }

Proof

Step Hyp Ref Expression
1 df-prop PROP = setrecs ( ( 𝑦 ∈ V ↦ { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ) )
2 dfprop1 { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ⊆ PROP
3 sstr2 ( 𝑎 ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } → ( { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ⊆ PROP → 𝑎 ⊆ PROP ) )
4 2 3 mpi ( 𝑎 ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } → 𝑎 ⊆ PROP )
5 rexeq ( 𝑦 = 𝑎 → ( ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ↔ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) )
6 5 orbi2d ( 𝑦 = 𝑎 → ( ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ↔ ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ) )
7 6 rexeqbi1dv ( 𝑦 = 𝑎 → ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ↔ ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ) )
8 7 orbi1d ( 𝑦 = 𝑎 → ( ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) ↔ ( ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) ) )
9 8 abbidv ( 𝑦 = 𝑎 → { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } = { 𝑥 ∣ ( ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } )
10 eqid ( 𝑦 ∈ V ↦ { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ) = ( 𝑦 ∈ V ↦ { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } )
11 vex 𝑎 ∈ V
12 11 dfproplem { 𝑥 ∣ ( ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ∈ V
13 9 10 12 fvmpt ( 𝑎 ∈ V → ( ( 𝑦 ∈ V ↦ { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ) ‘ 𝑎 ) = { 𝑥 ∣ ( ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } )
14 13 elv ( ( 𝑦 ∈ V ↦ { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ) ‘ 𝑎 ) = { 𝑥 ∣ ( ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) }
15 ssrexv ( 𝑎 ⊆ PROP → ( ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) → ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ) )
16 15 orim1d ( 𝑎 ⊆ PROP → ( ( ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) → ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) ) )
17 ssrexv ( 𝑎 ⊆ PROP → ( ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) → ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) )
18 17 orim2d ( 𝑎 ⊆ PROP → ( ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) → ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ) )
19 18 reximdv ( 𝑎 ⊆ PROP → ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) → ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ) )
20 19 orim1d ( 𝑎 ⊆ PROP → ( ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) → ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) ) )
21 16 20 syld ( 𝑎 ⊆ PROP → ( ( ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) → ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) ) )
22 21 ss2abdv ( 𝑎 ⊆ PROP → { 𝑥 ∣ ( ∃ 𝑧𝑎 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑎 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } )
23 14 22 eqsstrid ( 𝑎 ⊆ PROP → ( ( 𝑦 ∈ V ↦ { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ) ‘ 𝑎 ) ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } )
24 4 23 syl ( 𝑎 ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } → ( ( 𝑦 ∈ V ↦ { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ) ‘ 𝑎 ) ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } )
25 24 ax-gen 𝑎 ( 𝑎 ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } → ( ( 𝑦 ∈ V ↦ { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ) ‘ 𝑎 ) ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } )
26 25 a1i ( ⊤ → ∀ 𝑎 ( 𝑎 ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } → ( ( 𝑦 ∈ V ↦ { 𝑥 ∣ ( ∃ 𝑧𝑦 ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤𝑦 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ) ‘ 𝑎 ) ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } ) )
27 1 26 setrec2v ( ⊤ → PROP ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) } )
28 27 mptru PROP ⊆ { 𝑥 ∣ ( ∃ 𝑧 ∈ PROP ( 𝑥 = ( prop¬ ‘ 𝑧 ) ∨ ∃ 𝑤 ∈ PROP 𝑥 = ( 𝑤 prop→ 𝑧 ) ) ∨ ∃ 𝑛 ∈ ℕ 𝑥 = ( propvar ‘ 𝑛 ) ) }