New lemmas for stdlib#1053
Conversation
|
It seems like applying Some of the proofs for the option lemmas can also be significantly simplified by destructuring. |
7139d96 to
a5828b4
Compare
Thanks. This makes lots of sense. I feel that I learned the proper way of handling |
oskgo
left a comment
There was a problem hiding this comment.
Had a look at the rest now.
| lemma expr1 x: exp x 1 = x. | ||
| proof. by rewrite /exp /= iterop1. qed. | ||
|
|
||
| lemma exprE (x : t) n : 0 <= n => exp x n = iter n (( * ) x) oner. |
There was a problem hiding this comment.
This is only the non-negative case. It should be called something like exprE_ge0 instead.
| by apply/eq_sym; apply: inj_rexpr eq => /#. | ||
| qed. | ||
|
|
||
| lemma rpow_mono_base_ge1 (x n m : real) : |
There was a problem hiding this comment.
This is rexpr_hmono with a weaker side condition. Generally we prefer changing existing lemmas when a new one would be strictly more applicable. Also change rexpr_hmono_ltr to match the new rexpr_hmono.
| lemma maxzz : idempotent max by smt(). | ||
| lemma minzz : idempotent min by smt(). | ||
There was a problem hiding this comment.
There should be a matching lemma for max.
This is the first part of the auxiliary lemmas used in the oram proofs. My current plan is to create 5 PRs (~2k LoC) in total.
I will make sure all the proofs are either written by human, or first generated by LLM and then carefully edited step by step by myself.