Zulip Chat Archive
Stream: new members
Topic: Using an axiom with "let"
Quinn Culver (Nov 12 2022 at 02:54):
From this lean 3 project, I got the following
constant Point : Type
constant Line : Type
constant lies_on : Point → Line → Prop
constant line_of_points (p₁ p₂ : Point) : p₁ ≠ p₂ → Line
axiom line_exists (p₁ p₂ : Point) (h : p₁ ≠ p₂) :
let l : Line := line_of_points p₁ p₂ h in
lies_on p₁ l ∧ lies_on p₂ l
How would one use line_exists
in a proof? The fact that it's a let
statement is giving me trouble. In particular, suppose the local context contains
p₁p₂: Point
l: Line
h: p₁ ≠ p₂
g_1: lies_on p₁ l
g_2: lies_on p₂ l
l₀: Line := line_of_points p₁ p₂ h
Could line_exists
be used to show l = l₀
?
Mario Carneiro (Nov 12 2022 at 02:59):
no, at least not with those axioms alone
Mario Carneiro (Nov 12 2022 at 02:59):
line_exists
could be used to show that lies_on p₁ l₀
and lies_on p₂ l₀
but you need some uniqueness assumption to prove l = l₀
Quinn Culver (Nov 12 2022 at 03:01):
Thanks. Doesn't uniqueness follow from the fact that line_of_points
is a function?
I see.
Last updated: Dec 20 2023 at 11:08 UTC