case float =>
  intros i s Hshape Htype;
  cases τ <;> simp [hasType] at Htype
  cases s <;> simp [flatten, hasShape] at *
τ : MLIRTy
⊢ ∀ (a : Float) (s : List ℕ),
    hasShape (float a) s = true → ∀ (h : hasType (float a) τ = true), List.length (flatten (float a) h) = shapeProd s
no goals