Theorem: SetTheory.interpret_memProd' (SetTheory/OPair.lean)

State before:
V : Type u_1
inst✝ : Zermelo V
x✝ y✝ z✝ : V
α : Type
n : Nat
v : α → V
l : Fin n → V
x y z : α ⊕ Fin n
⊢ Interpret V (BoundedFormula.memProd x y z) v l ↔
    ∃ a, a ∈ interpretTerm V v l y ∧ ∃ b, b ∈ interpretTerm V v l z ∧ interpretTerm V v l x = opair a b
Tactic:
unfold BoundedFormula.memProd
State after:
V : Type u_1
inst✝ : Zermelo V
x✝ y✝ z✝ : V
α : Type
n : Nat
v : α → V
l : Fin n → V
x y z : α ⊕ Fin n
⊢ Interpret V
      (BoundedFormula.exists
        (BoundedFormula.exists
          (BoundedFormula.and
            (BoundedFormula.and
              (BoundedFormula.mem (Sum.inr { val := n, isLt := (_ : n < n + (1 + 1)) }) (termSucc (termSucc y)))
              (BoundedFormula.mem (Sum.inr { val := n + 1, isLt := (_ : n + 1 < n + 1 + (0 + 1)) })
                (termSucc (termSucc z))))
            (BoundedFormula.eqOPair (termSucc (termSucc x)) (Sum.inr { val := n, isLt := (_ : n < n + (1 + 1)) })
              (Sum.inr { val := n + 1, isLt := (_ : n + 1 < n + 1 + (0 + 1)) })))))
      v l ↔
    ∃ a, a ∈ interpretTerm V v l y ∧ ∃ b, b ∈ interpretTerm V v l z ∧ interpretTerm V v l x = opair a b

State before:
V : Type u_1
inst✝ : Zermelo V
x✝ y✝ z✝ : V
α : Type
n : Nat
v : α → V
l : Fin n → V
x y z : α ⊕ Fin n
⊢ Interpret V
      (BoundedFormula.exists
        (BoundedFormula.exists
          (BoundedFormula.and
            (BoundedFormula.and
              (BoundedFormula.mem (Sum.inr { val := n, isLt := (_ : n < n + (1 + 1)) }) (termSucc (termSucc y)))
              (BoundedFormula.mem (Sum.inr { val := n + 1, isLt := (_ : n + 1 < n + 1 + (0 + 1)) })
                (termSucc (termSucc z))))
            (BoundedFormula.eqOPair (termSucc (termSucc x)) (Sum.inr { val := n, isLt := (_ : n < n + (1 + 1)) })
              (Sum.inr { val := n + 1, isLt := (_ : n + 1 < n + 1 + (0 + 1)) })))))
      v l ↔
    ∃ a, a ∈ interpretTerm V v l y ∧ ∃ b, b ∈ interpretTerm V v l z ∧ interpretTerm V v l x = opair a b
Tactic:
aesop
State after:
no goals