-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChain.lean
More file actions
51 lines (40 loc) · 1.31 KB
/
Chain.lean
File metadata and controls
51 lines (40 loc) · 1.31 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
module
import QuasiBorelSpaces.Basic
public import QuasiBorelSpaces.Defs
public section
namespace QuasiBorelSpace.Chain
open OmegaCompletePartialOrder
variable
{A : Type*} {_ : QuasiBorelSpace A}
{B : Type*} {_ : QuasiBorelSpace B}
{C : Type*} {_ : QuasiBorelSpace C}
instance [Preorder A] [QuasiBorelSpace A] : QuasiBorelSpace (Chain A) where
IsVar φ := ∀ i, IsHom (φ · i)
isVar_const f i := by simp only [isHom_const']
isVar_comp hf hφ i := by
rw [←isHom_iff_measurable] at hf
fun_prop
isVar_cases' hix hφ i := by
apply isHom_cases ?_ (hφ · i)
simp only [isHom_ofMeasurableSpace, hix]
@[local simp]
private lemma isHom_def [Preorder A] (φ : ℝ → Chain A) : IsHom φ ↔ ∀ i, IsHom (φ · i) := by
rw [←isVar_iff_isHom]
rfl
@[fun_prop]
lemma isHom_apply [Preorder A] (i : ℕ) : IsHom (fun (f : Chain A) ↦ f i) := by
rw [QuasiBorelSpace.isHom_def]
simp only [isHom_def]
fun_prop
@[fun_prop]
lemma isHom_pi [Preorder B] {f : A → Chain B} (hf : ∀ i, IsHom (f · i)) : IsHom f := by
rw [QuasiBorelSpace.isHom_def]
simp only [isHom_def]
fun_prop
@[simp]
lemma isHom_iff [Preorder B] {f : A → Chain B} : IsHom f ↔ ∀i, IsHom (f · i) := by
apply Iff.intro
· intro hf i
apply isHom_comp' (isHom_apply i) hf
· exact isHom_pi
end QuasiBorelSpace.Chain