intros i s Hshape Htype
τ : MLIRTy
⊢ ∀ (a : Float) (s : List ℕ),
    hasShape (float a) s = true → ∀ (h : hasType (float a) τ = true), List.length (flatten (float a) h) = shapeProd s
τ : MLIRTy
i : Float
s : List ℕ
Hshape : hasShape (float i) s = true
Htype : hasType (float i) τ = true
⊢ List.length (flatten (float i) Htype) = shapeProd s