-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
update to Lean 4.16 #529
update to Lean 4.16 #529
Conversation
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
…ke command? Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
cedar-lean/Cedar/Data/LT.lean
Outdated
|
||
theorem List.lt_asymm [LT α] [StrictLT α] {xs ys : List α} : | ||
theorem List.lt_asymm' [LT α] [StrictLT α] [Cedar.Data.DecidableLT α] {xs ys : List α} : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm guessing this renaming was necessary to avoid a conflict with a newly introduced theorem in Lean?
Can we rename it to List.slt_asymm
to be consistent with List.slt_trans
(which we also had to rename because of a conflict in the last update)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure. What does the s
stand for?
transitive a b c := by | ||
simp [LT.lt, Name.lt] | ||
simp only [LT.lt] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Curious why we need to consecutive simp only
s here. Stylistic choice or Lean does the wrong thing if we use a single simp only
that calls both sets of theorems?
Edited to add: this is not a blocker, just curiosity :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, if we combine it all then Lean throws maximum recursion depth has been reached
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that LT.lt
and Name.lt
recurse infinitely with each other, so those are the two that needed separating
Signed-off-by: Craig Disselkoen <cdiss@amazon.com>
Biggest change for us is (quoting from the Lean changelog):
Separately, Lean introduced its own
DecidableLT
. For now, to get things working, I kept ourDecidableLT
and just qualified it asCedar.Data.DecidableLT
when ambiguous. In a future PR we can look at replacing ourDecidableLT
with the Lean one.