csci8980-f23/scratch.typ

74 lines
1.1 KiB
Plaintext

#import "@preview/prooftrees:0.1.0": *
= 1
#tree(
axi[$d in [a =_A b]$],
uni[$"inv"(d) in ["symm"("symm"(d)) =_[a =_A b] d]$],
)
Defined by:
$
"inv"(d) equiv "idpeel"(d, (x) id(id(x)))
$
Derivation tree:
#tree(
axi[],
uni[$A "set"$],
)
= 2
```
d∈[a=A b] e∈[b=A c]
-------------------
trans(d, e) ∈ [a =A c]
trans(d,e) ≡ apply(idpeel(d,(x)λy.y),e)
```
```
trans (trans e f) g == trans e (trans f g)
apply(idpeel(
apply(idpeel(e, (x)\y.y), f),
(x)\y.y,
), g)
```
= 3
#tree(
axi[$d in [a =_A b]$],
uni[$"unitl"(a, d) ∈ ["trans"(id(a), d) =_[a =_A b] d]$]
)
---
Simplifying the output type:
$
"trans"(id(a), d) &=_[a =_A b] d \
"apply"("idpeel"(id(a), (x)lambda y.y), d) &=_[a =_A b] d \
"apply"(((x)lambda y.y)(a), d) &=_[a =_A b] d \
"apply"((lambda y.y), d) &=_[a =_A b] d \
d &=_[a =_A b] d \
$
This is just a reflexive equality so can be satisfied by $"id"$:
$ "unitl"(a, d) equiv id(d) $
= 4
#tree(
axi[$d in [a =_A b]$],
uni[$"unitr"(d, b) in ["trans"(d, id(b)) =_[a =_A b] d]$],
)
$
"unitr"(d, b) equiv "idpeel"(d, (x)id(id(x))) \
$