Built with doc-gen4, running Lean4. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓to navigate, Ctrl+πŸ–±οΈto focus. On Mac, use Cmdinstead of Ctrl.
import Pretty.Defs.Basic

/-!
## Various lemmas about size of `Doc`

These will be helpful for termination proofs. 
They will be used implicitly, as we mark them with `@[simp]`.
-/

@[simp]
lemma 
Doc.size_choice₁: βˆ€ {d₁ dβ‚‚ : Doc}, size d₁ < size (choice d₁ dβ‚‚)
Doc.size_choice₁
:
Doc.size: Doc β†’ β„•
Doc.size
d₁: ?m.4
d₁
<
Doc.size: Doc β†’ β„•
Doc.size
(
Doc.choice: Doc β†’ Doc β†’ Doc
Doc.choice
d₁: ?m.4
d₁
dβ‚‚: ?m.9
dβ‚‚
) :=

Goals accomplished! πŸ™
d₁, dβ‚‚: Doc


size d₁ < size (choice d₁ dβ‚‚)

Goals accomplished! πŸ™
@[simp] lemma
Doc.size_choiceβ‚‚: βˆ€ {dβ‚‚ d₁ : Doc}, size dβ‚‚ < size (choice d₁ dβ‚‚)
Doc.size_choiceβ‚‚
:
Doc.size: Doc β†’ β„•
Doc.size
dβ‚‚: ?m.1291
dβ‚‚
<
Doc.size: Doc β†’ β„•
Doc.size
(
Doc.choice: Doc β†’ Doc β†’ Doc
Doc.choice
d₁: ?m.1296
d₁
dβ‚‚: ?m.1291
dβ‚‚
) :=

Goals accomplished! πŸ™
dβ‚‚, d₁: Doc


size dβ‚‚ < size (choice d₁ dβ‚‚)

Goals accomplished! πŸ™
@[simp] lemma
Doc.size_align: βˆ€ {d' : Doc}, size d' < size (align d')
Doc.size_align
:
Doc.size: Doc β†’ β„•
Doc.size
d': ?m.1753
d'
<
Doc.size: Doc β†’ β„•
Doc.size
(
Doc.align: Doc β†’ Doc
Doc.align
d': ?m.1753
d'
) :=

Goals accomplished! πŸ™
d': Doc


size d' < size (align d')

Goals accomplished! πŸ™
@[simp] lemma
Doc.size_nest: βˆ€ {d' : Doc} {n : β„•}, size d' < size (nest n d')
Doc.size_nest
:
Doc.size: Doc β†’ β„•
Doc.size
d': ?m.2497
d'
<
Doc.size: Doc β†’ β„•
Doc.size
(
Doc.nest: β„• β†’ Doc β†’ Doc
Doc.nest
n: ?m.2502
n
d': ?m.2497
d'
) :=

Goals accomplished! πŸ™
d': Doc

n: β„•


size d' < size (nest n d')

Goals accomplished! πŸ™
@[simp] lemma
Doc.size_concat₁: βˆ€ {d₁ dβ‚‚ : Doc}, size d₁ < size (concat d₁ dβ‚‚)
Doc.size_concat₁
:
d₁: ?m.3255
d₁
.
size: Doc β†’ β„•
size
< (
Doc.concat: Doc β†’ Doc β†’ Doc
Doc.concat
d₁: ?m.3255
d₁
dβ‚‚: ?m.3263
dβ‚‚
).
size: Doc β†’ β„•
size
:=

Goals accomplished! πŸ™
d₁, dβ‚‚: Doc


size d₁ < size (concat d₁ dβ‚‚)

Goals accomplished! πŸ™
@[simp] lemma
Doc.size_concatβ‚‚: βˆ€ {d₁ dβ‚‚ : Doc}, size dβ‚‚ < size (concat d₁ dβ‚‚)
Doc.size_concatβ‚‚
:
dβ‚‚: ?m.3734
dβ‚‚
.
size: Doc β†’ β„•
size
< (
Doc.concat: Doc β†’ Doc β†’ Doc
Doc.concat
d₁: ?m.3727
d₁
dβ‚‚: ?m.3734
dβ‚‚
).
size: Doc β†’ β„•
size
:=

Goals accomplished! πŸ™
d₁, dβ‚‚: Doc


size dβ‚‚ < size (concat d₁ dβ‚‚)

Goals accomplished! πŸ™