Skip to content

Commit 4a1c6b9

Browse files
committed
simple le lemmas
1 parent 79c8275 commit 4a1c6b9

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/latte_nats/ord.clj

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,16 @@
8585
(have <i> (= m n) :by (eq/eq-sym (q/ex-elim H1 <h>))))
8686
(qed <i>))
8787

88+
(defthm le-zero
89+
[n nat]
90+
(<= zero n))
91+
92+
(proof 'le-zero
93+
(have <a> (= (+ zero n) n)
94+
:by (plus/plus-zero-swap n))
95+
(qed ((q/ex-intro (lambda [$ nat]
96+
(= (+ zero $) n)) n) <a>)))
97+
8898
(defthm le-succ
8999
[n nat]
90100
(<= n (succ n)))
@@ -95,6 +105,18 @@
95105

96106
(qed ((q/ex-intro (lambda [$ nat] (= (+ n $) (succ n))) one) <a>)))
97107

108+
(defthm le-one
109+
[n nat]
110+
(<= one (succ n)))
111+
112+
(proof 'le-one
113+
(have <a> (= (+ n one) (+ one n))
114+
:by (plus/plus-commute n one))
115+
(have <b> (= (+ one n) (succ n))
116+
:by (eq/eq-subst (lambda [$ nat] (= $ (succ n))) <a> (plus/plus-one-succ n)))
117+
118+
(qed ((q/ex-intro (lambda [$ nat] (= (+ one $) (succ n))) n) <b>)))
119+
98120
(definition <
99121
"The strict variant of [[<=]]."
100122
[[n nat] [m nat]]

0 commit comments

Comments
 (0)