Build the idea in three steps
- Start with the objects: (a : ℕ) means a is a natural number. ℕ includes zero; ℤ also includes negative integers.
- A condition is itself a statement. ha : 0 < a names evidence that a is positive. Prop is the type of statements.
- Read ∀ as “for every”, ∃ as “there exists”, ∧ as “and”, and → as “if … then …”. A structure bundles objects with evidence for its fields.
A small example
In the package, a : ℤ is a number, while ha0 : a ≠ 0 is evidence about that number.