{motive : Lean.Expr → Sort u} →
  (t : Lean.Expr) →
    ((a : Lean.Literal) → motive (Lean.Expr.lit a)) →
      ((declName : Lean.Name) → (us : List Lean.Level) → motive (Lean.Expr.const declName us)) →
        ((fvarId : Lean.FVarId) → motive (Lean.Expr.fvar fvarId)) →
          ((typeName : Lean.Name) → (idx : ℕ) → (struct : Lean.Expr) → motive (Lean.Expr.proj typeName idx struct)) →
            ((binderName : Lean.Name) →
                (binderType body : Lean.Expr) →
                  (binderInfo : Lean.BinderInfo) → motive (Lean.Expr.forallE binderName binderType body binderInfo)) →
              (Nat.hasNotBit 2706 t.ctorIdx → motive t) → motive t