(motive :
    Option (ℚ × Lean.Meta.Grind.Arith.Cutsat.LeCnstr) → Option (ℚ × Lean.Meta.Grind.Arith.Cutsat.LeCnstr) → Sort u_1) →
  (lower? upper? : Option (ℚ × Lean.Meta.Grind.Arith.Cutsat.LeCnstr)) →
    (Unit → motive none none) →
      ((lower : ℚ) → (snd : Lean.Meta.Grind.Arith.Cutsat.LeCnstr) → motive (some (lower, snd)) none) →
        ((upper : ℚ) → (snd : Lean.Meta.Grind.Arith.Cutsat.LeCnstr) → motive none (some (upper, snd))) →
          ((lower : ℚ) →
              (c₁ : Lean.Meta.Grind.Arith.Cutsat.LeCnstr) →
                (upper : ℚ) →
                  (c₂ : Lean.Meta.Grind.Arith.Cutsat.LeCnstr) → motive (some (lower, c₁)) (some (upper, c₂))) →
            motive lower? upper?