module LocalClosedness where
open import Prelude
open import Unfinite
open import oc-Sets
infix 4 _≻_
_≻_ : {X : Set}{{_ : oc X}} → ℕ → X → Set
i ≻ x = (j : ℕ){{_ : j ≥ i}} → ∑ a ∶ 𝔸 , (j ~> a)x ≡ x
module _ {X : Set}{{_ : oc X}} where
≻1 :
{i j : ℕ}
{x : X}
(p : j ≥ i)
(q : i ≻ x)
→
j ≻ x
≻1 p q k = q k {{≤trans p it}}
≻2 :
{i : ℕ}
{a b : 𝔸}
{x : X}
(p : (i ~> a)x ≡ x)
→
(i ~> b)x ≡ x
≻2 {i} {a} {b}{x} p =
proof
(i ~> b)x
[ ap (i ~> b) p ]≡
(i ~> b)((i ~> a)x)
≡[ oc₁ _ _ _ _ ]
(i ~> a)x
≡[ p ]
x
qed
≻3 :
{i j : ℕ}
{a : 𝔸}
{x : X}
(p : i ≻ x)
(q : j ≥ i)
→
(j ~> a)x ≡ x
≻3 p q = ≻2 (π₂ (p _ {{q}}))
open-close-var :
{a : 𝔸}
{x : X}
{i : ℕ}
(p : i ≻ x)
→
(i ~> a)((i <~ a)x) ≡ x
open-close-var {a} {x} {i} p =
proof
(i ~> a)((i <~ a)x)
≡[ oc₄ _ _ _ ]
(i ~> a)x
≡[ ≻3 p ≤refl ]
x
qed