{α : Type u_4} →
  [inst : Semiring α] →
    [inst_1 : PartialOrder α] →
      {motive : FloorSemiring α → Sort u} →
        (t : FloorSemiring α) →
          ((floor ceil : α → ℕ) →
              (floor_of_neg : ∀ {a : α}, a < 0 → floor a = 0) →
                (gc_floor : ∀ {a : α} {n : ℕ}, 0 ≤ a → (n ≤ floor a ↔ ↑n ≤ a)) →
                  (gc_ceil : GaloisConnection ceil Nat.cast) →
                    motive
                      { floor := floor, ceil := ceil, floor_of_neg := floor_of_neg, gc_floor := gc_floor,
                        gc_ceil := gc_ceil }) →
            motive t