{α : Type u} →
  {motive : IdemCommSemiring α → Sort u_1} →
    (t : IdemCommSemiring α) →
      ([toCommSemiring : CommSemiring α] →
          [toSemilatticeSup : SemilatticeSup α] →
            (add_eq_sup : ∀ (a b : α), a + b = a ⊔ b) →
              (bot : α) →
                (bot_le : ∀ (a : α), bot ≤ a) →
                  motive
                    { toCommSemiring := toCommSemiring, toSemilatticeSup := toSemilatticeSup, add_eq_sup := add_eq_sup,
                      bot := bot, bot_le := bot_le }) →
        motive t