def f : Nat × Nat → Nat | (a, b) => a + b def f' : Nat × Nat → Nat | (a, b) => by done example (x : Nat × Nat) (h : x.1 > 0) : f x > 0 := by match x with | (a, b) => done def g (x : Nat) : Nat × Nat := (x, x+1) example (x : Nat) : Nat := match g x with | (a, b) => by done inductive Vector' (α : Type u) : Nat → Type u where | nil : Vector' α 0 | cons : α → Vector' α n → Vector' α (n+1) namespace Vector' def insert (a: α): Fin (n+1) → Vector' α n → Vector' α (n+1) | ⟨0 , _⟩, xs => cons a xs | ⟨i+1, h⟩, cons x xs => by done end Vector'