- Page 1 and 2: Miscellaneous HOL ExamplesDecember
- Page 3 and 4: 13.5.5 Powers . . . . . . . . . . .
- Page 5 and 6: 30 Substitution and Unification 195
- Page 7 and 8: 45 Divergence of the Harmonic Serie
- Page 9 and 10: 59 Examples for the list comprehens
- Page 11 and 12: 81 Meson test cases 45281.1 Interac
- Page 13 and 14: declare [[coercion nat-of-bool]]dec
- Page 15 and 16: definition xs :: bool list where xs
- Page 17 and 18: allI [intro]: ( ∧ x. P x) =⇒
- Page 19: show ∀ C . (A −→ B −→ C )
- Page 23 and 24: locale NAT =fixes zero :: ′ nand
- Page 25 and 26: and repl-succ [simp]: repl (succ n)
- Page 27 and 28: 5.3 Nested recursionfunction nzwher
- Page 29 and 30: with divmod have x = 2 ∗ (x div 2
- Page 31 and 32: fun-cases list-to-option-NoneE: lis
- Page 33 and 34: wherek x = (let a = x; b = x in k x
- Page 35 and 36: funf4 :: nat ⇒ nat ⇒ boolwheref
- Page 37 and 38: definitionis-inf :: [ ′ a, ′ a,
- Page 39 and 40: ( ∧ z. x ⊑ z =⇒ y ⊑ z =⇒
- Page 41 and 42: qedshow w ⊑ y ⊓ zproofshow w
- Page 43 and 44: fix z assume z ⊑ x and z ⊑ ysho
- Page 45 and 46: then show EX sup. is-sup x y sup by
- Page 47 and 48: where dpo.less (op
- Page 49 and 50: apply (unfold nat-dvd.join-def )app
- Page 51 and 52: lemma unit-inv-inv [simp]:unit x ==
- Page 53 and 54: y ∗∗ x = one ==> inv x = yapply
- Page 55 and 56: qedthm Dfun.unit-l-inv Dfun.l-invth
- Page 57 and 58: y simpRepresentation of records by
- Page 59 and 60: Only the most recent update to a co
- Page 61 and 62: 10 A general “while” combinator
- Page 63 and 64: qedqednextfix kassume ¬ b ′ ((c
- Page 65 and 66: lemma def-while-unfold:assumes fdef
- Page 67 and 68: and the AFP article Executable Tran
- Page 69 and 70: qedend12 Monoids and Groups as pred
- Page 71 and 72:
apply simp oopslemma (i + j + −12
- Page 73 and 74:
y simplemma (89 ::int) ∗ 10 ≠ 8
- Page 75 and 76:
lemma −5 ˆ 11 = (−48828125 ::i
- Page 77 and 78:
y simplemma x + (y + (y + (y + (−
- Page 79 and 80:
lemma (x::real) < y ==> ¬ y < xby
- Page 81 and 82:
lemma ((0 ::real) ≤ x + x) = (0
- Page 83 and 84:
y arithlemma (x = y − z) = (x + z
- Page 85 and 86:
lemma 0xFF = 255 by (rule refl)lemm
- Page 87 and 88:
| quote-tr ts = raise TERM (quote-t
- Page 89 and 90:
assume gh: g ∼ hshow f ∼ hproof
- Page 91 and 92:
proof (unfold eqv-class-def )assume
- Page 93 and 94:
lemma sum-squared: ( ∑ i=0 ..n. i
- Page 95 and 96:
19.2.2 Generalised Three DividesThi
- Page 97 and 98:
sumdig :: nat ⇒ nat wheresumdig n
- Page 99 and 100:
lemma ((P −−> (Q | (Q−−>R))
- Page 101 and 102:
y iproverlemma ((P = Q) = R) −−
- Page 103 and 104:
lemma (((EX x. P(x)) & (EX y. Q(y))
- Page 105 and 106:
CTL operations such as negation, co
- Page 107 and 108:
proof −have mono (λs. p ∩ EX s
- Page 109 and 110:
also have . . . = AX ?lhs by (simp
- Page 111 and 112:
lemma (i::nat) < j ==> min i j < ma
- Page 113 and 114:
lemma [| P = (x = 0 ); ( ∼ P) = (
- Page 115 and 116:
primrec reflect :: ′ a bt => ′
- Page 117 and 118:
append (append t1 t2 ) t3 = append
- Page 119 and 120:
ight2 ))))definition add0 :: key
- Page 121 and 122:
inductive full :: nat ⇒ ′ a tre
- Page 123 and 124:
apply (rule-tac a=k and b=a in ord-
- Page 125 and 126:
GREATER None k) r)and full (Suc n)
- Page 127 and 128:
proofshow (λx. 0 ::nat) ∈ {f . f
- Page 129 and 130:
25.3.2 Differenceinstantiation mult
- Page 131 and 132:
lemma add-eq-conv-diff :M + {#a#} =
- Page 133 and 134:
a :# B =⇒ {#a#} ≤ Bby (simp add
- Page 135 and 136:
y autothen show count (A + B − C
- Page 137 and 138:
lemma filter-union [simp]:Multiset.
- Page 139 and 140:
proof −from assms obtain a where
- Page 141 and 142:
and insert: ∧ a F . a ∈# A =⇒
- Page 143 and 144:
with its own code thms needs to be
- Page 145 and 146:
y (induct x) autolemma set-of-multi
- Page 147 and 148:
nextcase (Cons x xs)then have ∗:
- Page 149 and 150:
lemma infinite-set-of-multiset-of-s
- Page 151 and 152:
show comm-monoid-mset times 1 ..fro
- Page 153 and 154:
25.10 Alternative representations25
- Page 155 and 156:
definition part :: ( ′ b ⇒ ′
- Page 157 and 158:
M0 + {#a#} = M0 ′ + {#a ′ #}
- Page 159 and 160:
theorem wf-mult: wf r ==> wf (mult
- Page 161 and 162:
∧ J ≠ {#} ∧ (∀ k∈set-of K
- Page 163 and 164:
[simp]: X = A + Z Y = B + Zand 1 [s
- Page 165 and 166:
inScnpReconstruct.multiset-setup (S
- Page 167 and 168:
〉〉hide-const (open) fold25.14 N
- Page 169 and 170:
[code]: HOL.equal A B ←→ (A::
- Page 171 and 172:
y (induct xs ys rule: merge.induct)
- Page 173 and 174:
schematic-lemmafixes x :: intshows
- Page 175 and 176:
29 Milner-Tofte: Co-induction in Re
- Page 177 and 178:
[| !!ev. P(e-var(ev));!!c. P(e-cons
- Page 179 and 180:
(? te x e t1 t2 . pp=((te,fn x => e
- Page 181 and 182:
lemma lfp-ind2 :assumes lfp: x:lfp(
- Page 183 and 184:
apply (unfold eval-fun-def )apply (
- Page 185 and 186:
lemma elab-fun-mono: mono(elab-fun)
- Page 187 and 188:
!!te f x e t1 t2 .[| te + {f |=> t1
- Page 189 and 190:
lemma elab-fn-elim: te |− fn x1 =
- Page 191 and 192:
lemma hasty-rel-elim:[| (v,t) : has
- Page 193 and 194:
lemma consistency-fix:[| cl = v-cl
- Page 195 and 196:
apply (drule consistency)apply (bla
- Page 197 and 198:
y (auto simp:subst-eq-def )lemma su
- Page 199 and 200:
y pat-completeness autoof None ⇒
- Page 201 and 202:
case (3 c v)have no-occs: ¬ Var v
- Page 203 and 204:
y (auto intro!: measures-less intro
- Page 205 and 206:
and ϑ2 : unify (M ′ ⊳ ϑ1 ) (N
- Page 207 and 208:
PROPERTY A 7, monotonicity for < [n
- Page 209 and 210:
y (simp add: CONSTANT-def )lemma PR
- Page 211 and 212:
apply simpdoneend32 The Full Theore
- Page 213 and 214:
abbreviationsublat :: [ ′ a set,
- Page 215 and 216:
apply (blast intro: reflE)— antis
- Page 217 and 218:
y (simp add: monotone-def dualA-iff
- Page 219 and 220:
apply (simp add: lub-upper lub-leas
- Page 221 and 222:
apply assumptiondonelemma (in CLF )
- Page 223 and 224:
lemma (in CLF ) interval-lemma2 :[|
- Page 225 and 226:
lemmas (in CLF ) intv-CL-glb = intv
- Page 227 and 228:
apply (simp add: lub-upper Y-subset
- Page 229 and 230:
apply (rule indI )prefer 3 apply as
- Page 231 and 232:
y blast10lemma (Q−−>R) & (R−
- Page 233 and 234:
lemma (∀ x. P = Q(x)) −−> (P
- Page 235 and 236:
lemma (∀ z. ∃ w. ∀ x. ∃ y.(
- Page 237 and 238:
y fastProblem 56lemma (∀ x. (∃
- Page 239 and 240:
6lemma P | ∼ Pby blast7lemma P |
- Page 241 and 242:
lemma (∀ x. P = Q x) −−> (P =
- Page 243 and 244:
y blast — causes unification trac
- Page 245 and 246:
(∀ x y. P x y) | (∀ x y. Q x y)
- Page 247 and 248:
schematic-lemma a ≠ b =⇒ a ∈
- Page 249 and 250:
hence 1 : ALL a:A. finite(R ‘‘
- Page 251 and 252:
imports Main ∼∼ /src/HOL/Librar
- Page 253 and 254:
| blowup 0 0 0 0 0 (Suc f ) g h i =
- Page 255 and 256:
else if y > 0 ∧ x > 100 thenfun2
- Page 257 and 258:
col B D H N =⇒ col A E H O =⇒ c
- Page 259 and 260:
theorem ∼ (∀ (x::int).((2 dvd x
- Page 261 and 262:
eqs are the defining equations of t
- Page 263 and 264:
Now we specify on which subterm it
- Page 265 and 266:
wherelin-mul (C j ) i = C (i ∗ j
- Page 267 and 268:
lemma (Suc (Suc (Suc 0 )) ∗ ((x::
- Page 269 and 270:
xsapply (reify Irnat-simps Irlist.s
- Page 271 and 272:
definition prime-int :: int ⇒ boo
- Page 273 and 274:
lemma prime-dvd-mult-eq-nat [simp]:
- Page 275 and 276:
lemma prime-imp-power-coprime-nat:
- Page 277 and 278:
y (rule dvd-diff-nat)then have p dv
- Page 279 and 280:
with gcd have p dvd 1 by simpthen h
- Page 281 and 282:
where ZN = (λz n. z = of-nat n)43.
- Page 283 and 284:
apply (rule setsum-cong2 , simp)don
- Page 285 and 286:
44 Various examples for transfer pr
- Page 287 and 288:
We first prove the following auxill
- Page 289 and 290:
also have. . . = (( ∑ n∈{Suc 1
- Page 291 and 292:
qedfinally have (?P M ) ≥ (1 + (
- Page 293 and 294:
oopslemma Prefute [expect = genuine
- Page 295 and 296:
efute [expect = genuine]oopslemma (
- Page 297 and 298:
definition subset :: ( ′ a ⇒
- Page 299 and 300:
lemma (λf . f x) = (λf . True)ref
- Page 301 and 302:
oopslemma P (Eps P)refute [expect =
- Page 303 and 304:
lemma P (case x of None ⇒ n | Som
- Page 305 and 306:
efute [expect = none]by simplemma T
- Page 307 and 308:
lemma P (nat-rec zero suc x)refute
- Page 309 and 310:
lemma P (BinTree-rec l n x)refute [
- Page 311 and 312:
lemma P (E (D A))refute [expect = p
- Page 313 and 314:
efute [expect = potential]oopsdatat
- Page 315 and 316:
datatype ′ a lambda = Var ′ a |
- Page 317 and 318:
46.1.16 Inductively defined setsind
- Page 319 and 320:
lemma P (x:: ′ a::classA)refute [
- Page 321 and 322:
| update k v (p#ps) = (if fst p = k
- Page 323 and 324:
qedlemma updates-append1 [simp]: si
- Page 325 and 326:
lemma restr-conv ′ : map-of (rest
- Page 327 and 328:
distinct (map fst (clearjunk al))by
- Page 329 and 330:
lemma clearjunk-map-ran:clearjunk (
- Page 331 and 332:
case 1 then show ?case by simpnextc
- Page 333 and 334:
case Nonewith 2 havehyp: compose (d
- Page 335 and 336:
48 An abstract view on maps for cod
- Page 337 and 338:
lift-definition delete :: ′ a ⇒
- Page 339 and 340:
lemma tabulate-alt-def :map-of (Lis
- Page 341 and 342:
lemma keys-map-entry [simp]:keys (m
- Page 343 and 344:
lift-definition Mapping :: ( ′ a
- Page 345 and 346:
ultimately have dom (Mapping.lookup
- Page 347 and 348:
y (simp add: ∆-def algebra-simps)
- Page 349 and 350:
forδ :: real ⇒ realwherefine-Nil
- Page 351 and 352:
hence Suc N < length ((a,t,b)#D)
- Page 353 and 354:
unfolding rsum-def by simplemma rsu
- Page 355 and 356:
unfolding rsum-defby (induct set: f
- Page 357 and 358:
from 〈 d < b 〉 〈 d ≤ t 〉
- Page 359 and 360:
shows ∃ g. gauge {a..b} g &(∀ x
- Page 361 and 362:
theory Dedekind-Realimports Complex
- Page 363 and 364:
endReduces equality on abstractions
- Page 365 and 366:
doneqedelim: order-less-asym)instan
- Page 367 and 368:
qedqedqedPart 4 of Dedekind section
- Page 369 and 370:
==> z ∈ mult-set A Bproof (unfold
- Page 371 and 372:
qedqedqedthus 1 ∗ Abs-preal A = A
- Page 373 and 374:
A ∈ preal ==> {} ⊂ inverse-set
- Page 375 and 376:
have cpos [simp]: 0 < cby (simp add
- Page 377 and 378:
lemma subset-inverse-mult-lemma:ass
- Page 379 and 380:
at last, Gleason prop. 9-3.5(iii) p
- Page 381 and 382:
53.10 proving that S ≤ R + D —
- Page 383 and 384:
Part 2 of Dedekind sections definit
- Page 385 and 386:
the-elem ( ⋃ (x,y) ∈ Rep-Real(z
- Page 387 and 388:
lemma real-minus: − Abs-Real(real
- Page 389 and 390:
apply (rule-tacx = Abs-Real (realre
- Page 391 and 392:
instance real :: linorderby (intro-
- Page 393 and 394:
y (simp add: real-of-preal-def real
- Page 395 and 396:
using upper-bound-Ex ..from this an
- Page 397 and 398:
proof −obtain s where s-in-S: s
- Page 399 and 400:
moreover have x = u + X + − 1 usi
- Page 401 and 402:
hence 0 < inverse x by simpthen obt
- Page 403 and 404:
ultimately have finite {f : extensi
- Page 405 and 406:
lemma set [(x, y). x # y b] = {(x
- Page 407 and 408:
y (induct xs) (simp-all add: revers
- Page 409 and 410:
assume −2 ∗ b + (a + − c) = d
- Page 411 and 412:
end61.8 int-div-cancel-numeral-fact
- Page 413 and 414:
61.11 divide-cancel-numeral-factorn
- Page 415 and 416:
lemmafixes a b c d x y z :: ′ a::
- Page 417 and 418:
y (tactic 〈〈 test @{context} [@
- Page 419 and 420:
have ( (Suc (Suc (Suc (Suc (Suc (le
- Page 421 and 422:
y (tactic 〈〈 test @{context} [@
- Page 423 and 424:
have 10000001 mod 2 = (1 ::int)by (
- Page 425 and 426:
definition [code del]: (f :: ′ a
- Page 427 and 428:
lemma [iff ]:shows finfun-single-ne
- Page 429 and 430:
y(simp)lemma iso-finfun-conj [code-
- Page 431 and 432:
finite A ==> finite B ==> finite C
- Page 433 and 434:
export-code union common-subsets pr
- Page 435 and 436:
via antiquotation| constant timing
- Page 437 and 438:
definition computation-future :: un
- Page 439 and 440:
hide-const (open) sub ′lemma [cod
- Page 441 and 442:
k mod l = int-of-integer (of-int k
- Page 443 and 444:
y simplemma [code abstract]:integer
- Page 445 and 446:
71 Implementation of natural and in
- Page 447 and 448:
(∗abstraction of a real/rational
- Page 449 and 450:
ar x (Suc n) y = n + xdefinitionspl
- Page 451 and 452:
ML 〈〈@{term 1 + (1 ::int)}〉
- Page 453 and 454:
Test data for the MESON proof proce
- Page 455 and 456:
& sum(X :: ′ a,V3 ,V4 ) −−> p
- Page 457 and 458:
(∀ X Y . equal(X :: ′ a,f1 (X :
- Page 459 and 460:
EQU001-0-ax equal &CAT001-0-ax equa
- Page 461 and 462:
(∀ Start-state Label Goal-state.
- Page 463 and 464:
(∀ X Y Z W . program-halts2 (Y ::
- Page 465 and 466:
| between(X :: ′ a,Y ,euclid2 (W
- Page 467 and 468:
( ∼ between(a:: ′ a,b,b)) −
- Page 469 and 470:
&(∀ X V1 V2 V3 Y V4 V5 . equal(X
- Page 471 and 472:
&(∀ X W Y . equal(X :: ′ a,Y )
- Page 473 and 474:
(∀ X . product(identity:: ′ a,X
- Page 475 and 476:
&(∀ X . mless-equal(Zero:: ′ a,
- Page 477 and 478:
(equal(Divide(identity:: ′ a,b),c
- Page 479 and 480:
y mesonlemma LCL200-1 :(∀ A. axio
- Page 481 and 482:
( ∼ has-parts(john:: ′ a,mtimes
- Page 483 and 484:
lemma NUM024-1 :EQU001-0-ax equal &
- Page 485 and 486:
(∀ X . inductive(X ) −−> memb
- Page 487 and 488:
(∀ B1 C1 D1 . equal(B1 :: ′ a,C
- Page 489 and 490:
intersection single-valued3 singlet
- Page 491 and 492:
(∀ Xr Y . connected(Xr:: ′ a,Y
- Page 493 and 494:
&(∀ S2 U2 T2 . equal(S2 :: ′ a,
- Page 495 and 496:
universal-class sum-class element-r
- Page 497 and 498:
lemma PLA022-1 :PLA001-0-ax putdown
- Page 499 and 500:
−−> Falseby mesonlemma PRV006-1
- Page 501 and 502:
a-truth(Statement))) &(∀ Statemen
- Page 503 and 504:
&(∀ X W Z Y . equal(X :: ′ a,Y
- Page 505 and 506:
(∀ X . equal(multiply(X :: ′ a,
- Page 507 and 508:
(∀ D1 E1 F1 . equal(D1 :: ′ a,E
- Page 509 and 510:
(∀ Y X . equal(add(X :: ′ a,Y )
- Page 511 and 512:
member(h(Set1 :: ′ a,Set2 ,Inters
- Page 513 and 514:
&(∀ Y Z X . member(Z :: ′ a,cro
- Page 515 and 516:
&(∀ Xf . one-to-one-function(Xf )
- Page 517 and 518:
&(∀ S2 T2 U2 . equal(S2 :: ′ a,
- Page 519 and 520:
(∀ K12 L12 . equal(K12 :: ′ a,L
- Page 521 and 522:
(∀ Y X . f (g(X :: ′ a,Y ),Y )
- Page 523 and 524:
(∀ X Vt. equal-sets(union-of-memb
- Page 525 and 526:
(∀ X Vt Y Uu16 Z . topological-sp
- Page 527 and 528:
−−> element-of-collection(f6 (X