(motive : Bool → Mathlib.Tactic.ITauto.IProp → StateM ℕ (Bool × Mathlib.Tactic.ITauto.Proof) → Sort u_1) →
  (x : Bool) →
    (x_1 : Mathlib.Tactic.ITauto.IProp) →
      (x_2 : StateM ℕ (Bool × Mathlib.Tactic.ITauto.Proof)) →
        ((x : Mathlib.Tactic.ITauto.IProp) →
            (x_3 : StateM ℕ (Bool × Mathlib.Tactic.ITauto.Proof)) → motive false x x_3) →
          ((x : Mathlib.Tactic.ITauto.IProp) → (f : StateM ℕ (Bool × Mathlib.Tactic.ITauto.Proof)) → motive true x f) →
            motive x x_1 x_2