Watson
Natural proofs
Proofs that read like proofs
Paragraph that talks about how cool watson proofs are
- Steps read as sentences: arbitrary x; assume …; thus …
- Syntax you define yourself; Watson has no built-in proof grammar
- Another cool fact
-- the inverse of a bijection is itself a bijection
theorem bij.has_inverse [f A B : term] : (f ∈ (A ↔ B))
|- f⁻¹ ∈ (B ↔ A)
proof
follows f⁻¹ ∈ (B → A) by inv.is_fn_on;
follows dom(f) = A by bij_on.def, inj_on.def, fn_on.is_fn;
follows ran(f⁻¹) = A by inv.ran given dom(f) = A;
thus ∀x, ∀y, x ∈ B ∧ y ∈ B ∧ f⁻¹(x) = f⁻¹(y) → x = y as
arbitrary x; arbitrary y;
assume x ∈ B ∧ y ∈ B ∧ f⁻¹(x) = f⁻¹(y) then x = y as
follows f(f⁻¹(x)) = x ∧ f(f⁻¹(y)) = y by inv.apply;
done logically;
done logically;
follows f⁻¹ ∈ (B ↣ A) by inj_on.def;
done by bij_on.def
qed