type-theory/thesis/style.typ

87 lines
2.1 KiB
Text
Raw Normal View History

2025-01-14 20:03:27 +00:00
#import "@preview/ctheorems:1.1.3": *
#let template(title: "", content) = {
set text(
font: "New Computer Modern Math",
size: 12pt,
)
set page(
"us-letter",
margin: 1in,
)
set par(
// leading: 1.3em,
spacing: 2.4em,
first-line-indent: 1.8em,
justify: true,
)
set heading(
numbering: "1.1",
)
show: thmrules
show link: body => underline(text(fill: olive, body))
// show heading: set block(above: 1.4em, below: 1em)
heading(outlined: false, numbering: none)[#title]
outline(indent: true, depth: 2)
page(
numbering: "1", // TODO: Remove
content,
)
heading(outlined: false, numbering: none)[References]
bibliography("main.bib", title: none)
}
#let TODO(c) = [#text(fill: red)[*TODO:*] #c]
#let agdaCubicalLink(s) = link("https://github.com/agda/cubical/blob/2f085f5675066c0e1708752587ae788c036ade87/" + s.split(".").join("/") + ".agda", raw(s))
// ctheorems
#let theorem = thmbox("theorem", "Theorem", fill: rgb("#eeffee"))
#let corollary = thmplain(
"corollary",
"Corollary",
base: "theorem",
titlefmt: strong
)
#let definition = thmbox("definition", "Definition")
#let axiom = thmplain("axiom", "Axiom")
#let example = thmplain("example", "Example").with(numbering: none)
#let proof = thmproof("proof", "Proof")
// Notation
#let emptyType = $bot$
#let arro(a, b) = $#a op(arrow) #b$
#let judgCtx(a) = $#a sans("ctx")$
#let isTyp(a, b) = $#a op(:) #b$
#let judgTyp(G, a, A) = $#G tack.r isTyp(#a, #A)$
#let propEqSym = $equiv$
#let propEq(a, b) = $#a #propEqSym #b$
#let eqv(a, b) = $#a tilde.eq #b$
#let defEq(a, b) = $#a := #b$
#let judgEqTyp(G, a, b, A) = $#G tack.r isTyp(#a equiv #b, #A)$
#let imOf(f) = $sans("Im")(#f)$
#let ind = $sans("ind")$
#let ua = $sans("ua")$
#let uaEqv = $sans("uaEqv")$
#let isEquiv = $sans("isEquiv")$
#let typ = $sans("Type")$
#let abst(n, b) = $(#n) arrow.r.double #b$
#let typ0 = $typ_0$
#let unitType = link(<unitType>)[$bb(1)$]
#let tt = $sans("tt")$
#let boolType = $bb(2)$
#let S1 = $S^1$
#let base = $sans("base")$
#let loop = $sans("loop")$
#let AbGroup = $sans("AbGroup")$
#let hom(a, b) = $#a arrow.r.double #b$
#let homComp(a, b) = $#a op(circle.small) #b$