Zulip Chat Archive
Stream: general
Topic: Knaster-Tarski
Kenny Lau (Mar 29 2018 at 04:43):
https://github.com/kckennylau/Lean/blob/master/Knaster-Tarski.lean
@Mario Carneiro por favor diz que nao fazias isso
Kenny Lau (Mar 29 2018 at 04:44):
pooh favoh jeez ki now fazeeaish eesoo
Kenny Lau (Mar 29 2018 at 04:44):
(that's how I pronounce it)
Kenny Lau (Mar 29 2018 at 04:52):
@Kevin Buzzard if you're interested
Kenny Lau (Mar 29 2018 at 04:52):
it's related to the link I pm'ed you
Mario Carneiro (Mar 29 2018 at 04:54):
Actually I'm a bit surprised it's not there
Kenny Lau (Mar 29 2018 at 04:54):
bom!
Mario Carneiro (Mar 29 2018 at 04:55):
I'm certain there's something like it somewhere, but maybe it's not stated on complete lattices
Kenny Lau (Mar 29 2018 at 04:55):
I thought it's a theorem of complete lattices
Mario Carneiro (Mar 29 2018 at 04:55):
There is a lfp
function in ordinal with a similar proof attached
Kenny Lau (Mar 29 2018 at 04:56):
nice
Kenny Lau (Mar 29 2018 at 04:56):
that's the theorem about normal ordinal functions right
Kenny Lau (Mar 29 2018 at 04:56):
does it have a name?
Kenny Lau (Mar 29 2018 at 04:56):
maybe you can prove your lfp
using this :D
Kenny Lau (Mar 29 2018 at 04:56):
nvm it isn't a complete lattice
Mario Carneiro (Mar 29 2018 at 04:56):
is_normal.nfp_fp
is what I was thinking of
Mario Carneiro (Mar 29 2018 at 04:57):
Dunno, it's not a complete lattice
Kenny Lau (Mar 29 2018 at 04:57):
interesting
Mario Carneiro (Mar 29 2018 at 04:57):
Maybe that means there's a hidden abstraction?
Kenny Lau (Mar 29 2018 at 04:57):
well to be fair
Mario Carneiro (Mar 29 2018 at 04:57):
like a sup-continuous monotone function
Kenny Lau (Mar 29 2018 at 04:57):
your set is well-ordered
Kenny Lau (Mar 29 2018 at 04:57):
hmm
Kenny Lau (Mar 29 2018 at 04:58):
but my function isn't sup-continuous
Mario Carneiro (Mar 29 2018 at 04:59):
Are you sure? Seems like it follows from the assumptions
Mario Carneiro (Mar 29 2018 at 05:00):
Anyway, I think this is why it isn't abstracted :)
Kenny Lau (Mar 29 2018 at 05:00):
look at my aux 3
Mario Carneiro (Mar 29 2018 at 05:03):
Why do next
and previous
take an unused proof argument?
Mario Carneiro (Mar 29 2018 at 05:05):
Wouldn't it be nicer to state aux3
for subsets of fixed_points f
rather than sets in the subtype?
Mario Carneiro (Mar 29 2018 at 05:05):
Then you could skip the subtype.val ''
part
Kenny Lau (Mar 29 2018 at 05:07):
then how can I use it
Kenny Lau (Mar 29 2018 at 05:07):
Why do
next
andprevious
take an unused proof argument?
fixed
Mario Carneiro (Mar 29 2018 at 05:07):
For the big ol complete_lattice
proof, I don't think that's the claim you want. Rather, fixed_points f
is a complete sublattice of the powerset
Kenny Lau (Mar 29 2018 at 05:08):
sublattice?
Mario Carneiro (Mar 29 2018 at 05:08):
and then you have that construction generally for all sublattices
Kenny Lau (Mar 29 2018 at 05:08):
I'm not aware of the existence of sublattices in Lean?
Mario Carneiro (Mar 29 2018 at 05:09):
I don't think they exist
Mario Carneiro (Mar 29 2018 at 05:09):
But you could just skip the complete_lattice construction and just prove that the sup of fixed points is a fixed point
Kenny Lau (Mar 29 2018 at 05:10):
Wouldn't it be nicer to state
aux3
for subsets offixed_points f
rather than sets in the subtype?
nope, unprovable
Kenny Lau (Mar 29 2018 at 05:11):
wait, misinterpreted
Kenny Lau (Mar 29 2018 at 05:11):
But you could just skip the complete_lattice construction and just prove that the sup of fixed points is a fixed point
they aren't
Mario Carneiro (Mar 29 2018 at 05:11):
oh, I see, you need that next
thing in the middle
Mario Carneiro (Mar 29 2018 at 05:12):
Hm, it's something like a retract from set A
to fixed_points f
Mario Carneiro (Mar 29 2018 at 05:12):
It still strikes me as a generic construction
Kenny Lau (Mar 29 2018 at 05:14):
https://github.com/kckennylau/Lean/blob/master/Knaster-Tarski.lean
Kenny Lau (Mar 29 2018 at 05:15):
Wouldn't it be nicer to state
aux3
for subsets offixed_points f
rather than sets in the subtype?
done. compare aux3 and aux4. aux4 has not been changed. which one is better?
Mario Carneiro (Mar 29 2018 at 05:18):
Sup (f '' A)
is also expressible as an indexed sup, ⨆ x ∈ A, f x
Kenny Lau (Mar 29 2018 at 05:23):
oh
Kenny Lau (Mar 29 2018 at 05:42):
@Mario Carneiro so what is the verdict?
Mario Carneiro (Mar 29 2018 at 05:43):
I prefer aux3 since it is more likely to be used as a lemma
Kenny Lau (Mar 29 2018 at 05:43):
and in general?
Kenny Lau (Mar 29 2018 at 05:43):
do you find ways of abstracting Knaster-Tarski?
Mario Carneiro (Mar 29 2018 at 05:44):
Not anything obvious
Kenny Lau (Mar 29 2018 at 05:44):
and is it worth pushing?
Mario Carneiro (Mar 29 2018 at 05:44):
I wonder if it works in conditionally complete lattices
Mario Carneiro (Mar 29 2018 at 05:44):
yes, PR it
Kenny Lau (Mar 29 2018 at 05:44):
what is cc lattices?
Mario Carneiro (Mar 29 2018 at 05:45):
@Johannes Hölzl should also weigh in, he's more involved in complete lattice theory than me
Mario Carneiro (Mar 29 2018 at 05:45):
real numbers, basically
Mario Carneiro (Mar 29 2018 at 05:45):
sup of nonempty bounded sets
Kenny Lau (Mar 29 2018 at 05:45):
bot uses top, top uses bot
Mario Carneiro (Mar 29 2018 at 05:45):
?
Kenny Lau (Mar 29 2018 at 05:45):
I think they can do without each other then
Kenny Lau (Mar 29 2018 at 05:46):
the least fixed point is from the top element of the original lattice
Kenny Lau (Mar 29 2018 at 05:46):
f(x)=x+1 has no fixed points
Mario Carneiro (Mar 29 2018 at 05:47):
sounds legit
Kenny Lau (Mar 29 2018 at 05:47):
[0,infty) is downward complete right
Kenny Lau (Mar 29 2018 at 05:48):
same example applies
Kenny Lau (Mar 29 2018 at 05:52):
[0,1] is complete right
Mario Carneiro (Mar 29 2018 at 05:53):
yes
Kenny Lau (Mar 29 2018 at 05:53):
hmm
Kenny Lau (Mar 29 2018 at 05:53):
you don’t even need continuity
Mario Carneiro (Mar 29 2018 at 05:53):
wait, doesn't that imply banach's fp theorem in 1D?
Kenny Lau (Mar 29 2018 at 05:53):
:open_mouth:
Kenny Lau (Mar 29 2018 at 05:54):
maths is beautiful
Kenny Lau (Mar 29 2018 at 06:13):
https://github.com/leanprover/mathlib/pull/88
Johannes Hölzl (Mar 29 2018 at 06:59):
There is already order/fixed_points.lean
in mathlib. It contains lattice.lfp
and lattice.gfp
to compute the least and greatest fixed point of a function. For conditionally complete lattices: we could add a subtype instance for intervals on conditionally complete lattices. Then would be a complete lattice.
Kenny Lau (Mar 29 2018 at 07:01):
fair enough
Johannes Hölzl (Mar 29 2018 at 07:06):
Your next
and previous
function can be represented using the gfp
and lfp
: e.g. gfp (λz, x ⊔ f z) = Sup {z | z ≤ x ⊔ f z}
. Then you can use the lfp and gfp properties.
Kenny Lau (Mar 29 2018 at 07:07):
so you're just going to close my PR?
Johannes Hölzl (Mar 29 2018 at 07:08):
No, I don't want to close it. I would like to see the fixed point lattice in order/fixed_points.lean
. And using the constants and proofs we already have.
Kenny Lau (Mar 29 2018 at 07:08):
oh ok
Kenny Lau (Mar 29 2018 at 07:08):
are you going to edit it or am I going to edit it?
Johannes Hölzl (Mar 29 2018 at 07:10):
Of course, if you want you can edit it! I have a couple more changes: rename aux1..4
to something useful and replace is_ord_hom
by the assumption monotone f
, also going from type class to just assumption.
Kenny Lau (Mar 29 2018 at 08:43):
how would you rename aux1..4
? @Johannes Hölzl
Johannes Hölzl (Mar 29 2018 at 08:48):
something like sup_le_f_sup_of_fixed_points
?
Kenny Lau (Mar 29 2018 at 08:48):
ach fur gottesliebe
Kenny Lau (Mar 29 2018 at 08:49):
that's 10 times as long
Kevin Buzzard (Mar 29 2018 at 08:49):
and more descriptive too ;-)
Kenny Lau (Mar 29 2018 at 08:50):
do you use f
in names?
Kevin Buzzard (Mar 29 2018 at 08:50):
Wait -- aren't you and I editing some schemes files with function names like structure_sheaf_of_rings_on_affine_scheme
?
Kenny Lau (Mar 29 2018 at 08:50):
my mind replaces f
with apply
in names
Kenny Lau (Mar 29 2018 at 08:50):
yes, and it's always you who type it :P
Kevin Buzzard (Mar 29 2018 at 08:51):
definition structure_sheaf_of_rings_on_affine_scheme (R : Type*) [comm_ring R] : is_sheaf_of_rings (structure_presheaf_of_rings_on_affine_scheme R) :=...
:-)
Kevin Buzzard (Mar 29 2018 at 08:51):
well Mario told me I couldn't use tag00EJ
...
Kenny Lau (Mar 29 2018 at 08:51):
I never typed it :P
Kevin Buzzard (Mar 29 2018 at 08:51):
Perhaps tag00EJ
is as bad as aux1
right? ;-)
Kenny Lau (Mar 29 2018 at 08:52):
right
Last updated: Dec 20 2023 at 11:08 UTC