-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOmegaQuasiBorelSpace.lean
More file actions
65 lines (49 loc) · 1.94 KB
/
OmegaQuasiBorelSpace.lean
File metadata and controls
65 lines (49 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
module
import Mathlib.Order.OmegaCompletePartialOrder
import QuasiBorelSpaces.Basic
public import Mathlib.Order.OmegaCompletePartialOrder
public import QuasiBorelSpaces.Chain
public import QuasiBorelSpaces.Defs
public section
open OmegaCompletePartialOrder
open QuasiBorelSpace
/-!
# Omega quasi-Borel spaces
This file defines omega quasi-borel spaces (ωQBS), which combine `QuasiBorelSpace` and
`OmegaCompletePartialOrder` structures with a compatibility axiom stating that pointwise
ω-suprema of ω-chains of morphisms are morphisms (Definition 3.5 in [VakarKS19]).
We prove that products and coproducts preserve the ωQBS structure (Lemma 3.9).
See [VakarKS19].
## Definitions
* `OmegaQuasiBorelSpace`: A type with both an `OmegaCompletePartialOrder` and a
`QuasiBorelSpace`, satisfying the compatibility axiom.
-/
/--
An ωQBS (Omega quasi-borel space) is a type equipped with both a
`QuasiBorelSpace` and an `OmegaCompletePartialOrder`, satisfying the
compatibility axiom: variables are closed under pointwise ω-suprema of ω-chains.
-/
class OmegaQuasiBorelSpace (A : Type*) extends OmegaCompletePartialOrder A, QuasiBorelSpace A where
/--
Compatibility axiom (Definition 3.5 in [VakarKS19]):
variables are closed under pointwise ω-suprema of ω-chains.
-/
isHom_ωSup : IsHom (OmegaCompletePartialOrder.ωSup : Chain A → A)
namespace OmegaQuasiBorelSpace
variable {A B C : Type*}
attribute [simp, local fun_prop] isHom_ωSup
/--
Pointwise supremum of a chain of QBS morphisms is a QBS morphism
(also known as the "Compatibility Axiom" for the exponential to be an ωQBS)
-/
@[fun_prop]
lemma isHom_ωSup'
{_ : QuasiBorelSpace A} {_ : OmegaQuasiBorelSpace B}
(f : A → Chain B) (hc : IsHom f) :
IsHom (fun x ↦ ωSup (f x)) := by
fun_prop
instance
[QuasiBorelSpace A] [OmegaCompletePartialOrder A] [Subsingleton A]
: OmegaQuasiBorelSpace A where
isHom_ωSup := by simp only [isHom_to_subsingleton]
end OmegaQuasiBorelSpace