∀ (aig : Std.Sat.AIG ℕ) (upper : ℕ) (h : upper < aig.decls.size) (state : Std.Sat.AIG.toCNF.State✝ aig)
  (lhs rhs : Std.Sat.AIG.Fanin) (this : lhs.gate < upper ∧ rhs.gate < upper) (lstate : Std.Sat.AIG.toCNF.State✝ aig),
  Std.Sat.AIG.toCNF.State.IsExtensionBy✝ state lstate lhs.gate ⋯ →
    ∀ (rstate : Std.Sat.AIG.toCNF.State✝ aig),
      Std.Sat.AIG.toCNF.State.IsExtensionBy✝ lstate rstate rhs.gate ⋯ →
        ∀ (ret : Std.Sat.AIG.toCNF.State✝ aig),
          Std.Sat.AIG.toCNF.State.IsExtensionBy✝ rstate ret upper h →
            Std.Sat.AIG.toCNF.State.IsExtensionBy✝ state ret upper h