Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
sgdt
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
gradual-typing
sgdt
Commits
ac0cca5d
Commit
ac0cca5d
authored
1 year ago
by
tingtind
Browse files
Options
Downloads
Patches
Plain Diff
representableRelation on injNat, injArr
parent
2ef0ae90
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
formalizations/guarded-cubical/Semantics/Concrete/RepresentableRelation.agda
+118
-35
118 additions, 35 deletions
...ded-cubical/Semantics/Concrete/RepresentableRelation.agda
with
118 additions
and
35 deletions
formalizations/guarded-cubical/Semantics/Concrete/RepresentableRelation.agda
+
118
−
35
View file @
ac0cca5d
...
@@ -11,8 +11,10 @@ module Semantics.Concrete.RepresentableRelation (k : Clock) where
...
@@ -11,8 +11,10 @@ module Semantics.Concrete.RepresentableRelation (k : Clock) where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Function
open import Cubical.Foundations.Function
open import Cubical.Foundations.Structure
open import Cubical.Foundations.Structure
open import Cubical.Foundations.Transport
open import Cubical.Data.Sigma
open import Cubical.Data.Sigma
open import Cubical.Data.Sum hiding (elim)
open import Cubical.Data.Sum hiding (elim)
open import Cubical.Data.Nat renaming (ℕ to Nat) hiding (elim)
open import Cubical.HITs.PropositionalTruncation
open import Cubical.HITs.PropositionalTruncation
...
@@ -121,8 +123,8 @@ open RepresentableRel
...
@@ -121,8 +123,8 @@ open RepresentableRel
-- Pseudo-representation of the identity relation on a poset X
-- Pseudo-representation of the identity relation on a poset X
--
--
IdRepRel : {ℓo : Level} -> (X : Poset ℓ ℓ') ->
IdRepRel : {ℓo : Level} -> (X : Poset ℓ ℓ') ->
RepresentableRel X X
(ℓ-max ℓo
ℓ'
)
RepresentableRel X X ℓ'
IdRepRel {ℓo = ℓo} X .R = poset-monrel {ℓo = ℓ
o
} X
IdRepRel
{ℓ' = ℓ'}
{ℓo = ℓo} X .R = poset-monrel {ℓo = ℓ
'
} X
IdRepRel X .leftRep = record {
IdRepRel X .leftRep = record {
e = MonId ;
e = MonId ;
δX = MonId ;
δX = MonId ;
...
@@ -132,10 +134,9 @@ IdRepRel X .leftRep = record {
...
@@ -132,10 +134,9 @@ IdRepRel X .leftRep = record {
IdRepRel X .rightRep = record {
IdRepRel X .rightRep = record {
p = MonId ;
p = MonId ;
δX = MonId ;
δX = MonId ;
δY = MonId ;
δY = MonId ; -- X ≡ UniverseLiftPoset X
dnR = λ lx lx' lx≤lx' → {!!};
dnR = λ lx lx' lx≤lx' → transport (λ i → sym {!!} i) lx≤lx' ;
dnL = λ lx lx' lx≤lx' → {!MonRel.R !} }
dnL = λ lx lx' lx≤lx' → transport (λ i → {!!}) lx≤lx' }
-- How to construct a relation?
-- "Product" of pseudo-representable relations
-- "Product" of pseudo-representable relations
...
@@ -218,7 +219,7 @@ RepFun {Ai = Ai} {Ao = Ao} {Bi = Bi} {Bo = Bo} ci co .leftRep =
...
@@ -218,7 +219,7 @@ RepFun {Ai = Ai} {Ao = Ao} {Bi = Bi} {Bo = Bo} ci co .leftRep =
(MonFun.f (co .leftRep .e))
(MonFun.f (co .leftRep .e))
(MonFun.f (co .leftRep .δY))
(MonFun.f (co .leftRep .δY))
(co .leftRep .UpL) _ _
(co .leftRep .UpL) _ _
(ext-monotone-het _ _ (MonFun.f f) (MonFun.f g) f≤g _ _ (ci .rightRep
.dnL _ _
{!!}
)) ;
(ext-monotone-het _ _ (MonFun.f f) (MonFun.f g) f≤g _ _ (ci .rightRep.
dnL _ _
(ret-monotone bi bi (reflexive Bi bi))
)) ;
UpR = λ f g f≤g ai bi ai≤bi ->
UpR = λ f g f≤g ai bi ai≤bi ->
mapL-monotone-het
mapL-monotone-het
...
@@ -237,13 +238,12 @@ RepFun {Ai = Ai} {Ao = Ao} {Bi = Bi} {Bo = Bo} ci co .rightRep = record {
...
@@ -237,13 +238,12 @@ RepFun {Ai = Ai} {Ao = Ao} {Bi = Bi} {Bo = Bo} ci co .rightRep = record {
dnR = λ lf lg lf≤lg → mapL-monotone-het _ _
dnR = λ lf lg lf≤lg → mapL-monotone-het _ _
(MonFun.f (Curry (With2nd (co .rightRep .δX) ∘m App ∘m With2nd (ci .leftRep .δX))))
(MonFun.f (Curry (With2nd (co .rightRep .δX) ∘m App ∘m With2nd (ci .leftRep .δX))))
(MonFun.f (Curry (With2nd (co .rightRep .p) ∘m App ∘m With2nd (ci .leftRep .e))))
(MonFun.f (Curry (With2nd (co .rightRep .p) ∘m App ∘m With2nd (ci .leftRep .e))))
(λ f g f≤g ai → co .rightRep .dnR _ _
{!!}) lf lg lf≤lg ; --todo ℓ' != ℓR of type Level
(λ f g f≤g ai → co .rightRep .dnR _ _
(f≤g _ _ (ci .leftRep .UpR ai ai (reflexive Ai ai)))) lf lg lf≤lg ;
dnL = λ lg lg' lg≤lg' → mapL-monotone-het _ _
dnL = λ lg lg' lg≤lg' → mapL-monotone-het _ _
(MonFun.f (Curry (With2nd (co .rightRep .p) ∘m App ∘m With2nd (ci .leftRep .e))))
(MonFun.f (Curry (With2nd (co .rightRep .p) ∘m App ∘m With2nd (ci .leftRep .e))))
(MonFun.f (Curry (With2nd (co .rightRep .δY) ∘m App ∘m With2nd (ci .leftRep .δY))))
(MonFun.f (Curry (With2nd (co .rightRep .δY) ∘m App ∘m With2nd (ci .leftRep .δY))))
(λ g g' g≤g' ai bi ai≤bi → co .rightRep .dnL _ _
(λ g g' g≤g' ai bi ai≤bi → co .rightRep .dnL _ _
(≤mon→≤mon-het g g' g≤g' {!!} {!!} {!!}) --(≤mon→≤mon-het g g' g≤g' _ _ (ci .leftRep .UpL ai bi ai≤bi))
(≤mon→≤mon-het g g' g≤g' _ _ (ci .leftRep .UpL ai bi ai≤bi)))
)
lg lg' lg≤lg' }
lg lg' lg≤lg' }
...
@@ -251,9 +251,33 @@ RepFun {Ai = Ai} {Ao = Ao} {Bi = Bi} {Bo = Bo} ci co .rightRep = record {
...
@@ -251,9 +251,33 @@ RepFun {Ai = Ai} {Ao = Ao} {Bi = Bi} {Bo = Bo} ci co .rightRep = record {
-- Pseudo-representable relations involving Dyn
-- Pseudo-representable relations involving Dyn
--
--
Rel-ℕ : ∀ ℓ → _
Rel-ℕ ℓ = functionalRel InjNat Id (poset-monrel {ℓo = ℓ} DynP)
Rel-ℕ-lem : ∀ n d' ℓ -> R (Rel-ℕ ℓ) n d' ->
Σ[ n' ∈ ⟨ ℕ ⟩ ] (transport ⟨DynP⟩-Sum d' ≡ inl n') × (n ≡ n')
Rel-ℕ-lem n d' ℓ injN = ⊎p-rel-lem-l n (transport ⟨DynP⟩-Sum d')
let aux = (rel-transport DynP-Sum (lower injN)) in
transport (λ i →
rel (ℕ ⊎p (▸'' k) (DynP ==> 𝕃 DynP))
(transportTransport⁻ ⟨DynP⟩-Sum (inl n) i)
(transport ⟨DynP⟩-Sum d'))
(aux)
Rel-ℕ-lem' : ∀ n d' ℓR n' ->
(transport ⟨DynP⟩-Sum d' ≡ inl n') × (n ≡ n') ->
R (Rel-ℕ ℓR) n d'
Rel-ℕ-lem' n d' ℓR n' (eq , n≡n') =
let aux = rel-transport (sym DynP-Sum) {a1 = inl n} {a2 = inl n'} (lift n≡n') in
let eq2 = cong₂ transport refl (sym eq) ∙ transport⁻Transport ⟨DynP⟩-Sum d' in
lift (transport (λ i -> rel DynP (MonFun.f InjNat n ) (eq2 i)) aux)
injℕ : RepresentableRel ℕ DynP ℓR
injℕ : RepresentableRel ℕ DynP ℓR
injℕ
.
R =
functionalRel InjNat Id (poset-monrel DynP)
injℕ
{ℓ
R =
ℓR} .R = Rel-ℕ ℓR
injℕ .leftRep = record {
injℕ .leftRep = record {
e = InjNat ;
e = InjNat ;
δX = Id ;
δX = Id ;
...
@@ -264,29 +288,65 @@ injℕ .leftRep = record {
...
@@ -264,29 +288,65 @@ injℕ .leftRep = record {
-- NTS: InjNat n is related to InjNat m
-- NTS: InjNat n is related to InjNat m
UpR = λ n m n≡m → lift (MonFun.isMon InjNat n≡m) }
UpR = λ n m n≡m → lift (MonFun.isMon InjNat n≡m) }
injℕ .rightRep = record {
injℕ
{ℓR = ℓR}
.rightRep = record {
p = U mExt ProjNat ;
p = U mExt ProjNat ;
δX = U mExt mRet ; -- ext ret (which equals id)
δX = U mExt mRet ; -- ext ret (which equals id)
δY = U mExt mRet ;
δY = U mExt mRet ;
dnR = λ ln ld ln≤ld →
dnR = λ ln ld ln≤ld →
ext-monotone-het (R (injℕ .R)) (rel ℕ) ret (MonFun.f ProjNat)
ext-monotone-het (R (injℕ .R)) (rel ℕ) ret (MonFun.f ProjNat)
(λ n d n≤d →
{!R!}
) ln ld ln≤ld ;
(λ n d n≤d →
aux n d n≤d (Rel-ℕ-lem n d ℓR n≤d)
) ln ld ln≤ld ;
dnL = λ ld ld' ld≤ld' →
dnL = λ ld ld' ld≤ld' →
ext-monotone-het (rel DynP) (R (injℕ .R)) (MonFun.f ProjNat) ret
ext-monotone-het (rel DynP) (R (injℕ .R)) (MonFun.f ProjNat) ret
(λ d d' d≤d' →
{!!}
) ld ld' ld≤ld'
}
(λ d d' d≤d' →
aux' d d' d≤d' (Rel-DynP-lem d d' d≤d')
) ld ld' ld≤ld'
}
Rel : ∀ ℓ -> _
where
Rel ℓ = functionalRel InjArr Id (poset-monrel {ℓo = ℓ} DynP)
open LiftRelation.Properties
aux : ∀ n d n≤d sigma ->
Rel-lem : ∀ f d ℓ -> R (Rel ℓ) f d ->
LiftRelation._≾_ ⟨ ℕ ⟩ ⟨ ℕ ⟩ (rel ℕ) (ret n) (MonFun.f ProjNat d)
aux n d n≤d (n' , eq-inl , n≡n') =
let eq = ProjNat-nat d n' eq-inl in
transport (λ i → (_ LiftRelation.≾ _) (rel ℕ) (ret n) (sym eq i))
(ord-η-monotone ⟨ ℕ ⟩ ⟨ ℕ ⟩ (rel ℕ) n≡n')
aux' : ∀ d d' d≤d' sigma ->
(⟨ ℕ ⟩ LiftRelation.≾ ⟨ DynP ⟩) (R (Rel-ℕ ℓR)) (MonFun.f ProjNat d) (ret d')
aux' d d' d≤d' (inr (g~ , g~' , eq-inr , eq-inr' , g~≤g~')) =
let eq = ProjNat-fun d g~ eq-inr in
transport
(λ i → (⟨ ℕ ⟩ LiftRelation.≾ ⟨ DynP ⟩) (R (Rel-ℕ ℓR)) (sym eq i) (ret d'))
(ord-bot _ _ (R (Rel-ℕ ℓR)) (ret d'))
aux' d d' d≤d' (inl (n , n' , eq-inl , eq-inl' , n≡n')) =
let eq = ProjNat-nat d n eq-inl in
transport (λ i -> LiftRelation._≾_ _ _ (R (Rel-ℕ ℓR)) (sym eq i) (ret d'))
(ord-η-monotone ⟨ ℕ ⟩ ⟨ DynP ⟩ (R (Rel-ℕ ℓR))
(Rel-ℕ-lem' n d' ℓR n' (eq-inl' , n≡n')))
Rel-Arr : ∀ ℓ -> _
Rel-Arr ℓ = functionalRel InjArr Id (poset-monrel {ℓo = ℓ} DynP)
Rel-Arr-lem : ∀ f d' ℓ -> R (Rel-Arr ℓ) f d' ->
Σ[ g~ ∈ ⟨ ▹' k ((DynP ==> 𝕃 DynP)) ⟩ ]
Σ[ g~ ∈ ⟨ ▹' k ((DynP ==> 𝕃 DynP)) ⟩ ]
(transport ⟨DynP⟩-Sum d ≡ inr g~) × (▸ (λ t -> f ≤mon g~ t))
(transport ⟨DynP⟩-Sum d' ≡ inr g~) × (▸ (λ t -> f ≤mon g~ t))
Rel-lem f d ℓ injA = (transport {!!} {!!}) , ({!!} , {!!})
Rel-Arr-lem f d' ℓ injA = ⊎p-rel-lem-r (next f) (transport ⟨DynP⟩-Sum d')
-- (λ t → f) , (λ i → {!!}) , (λ t x → reflexive _ d)o
(let aux = rel-transport DynP-Sum (lower injA) in
transport (λ i ->
rel (ℕ ⊎p ((▸'' k) (DynP ==> 𝕃 DynP)))
(transportTransport⁻ ⟨DynP⟩-Sum (inr (next f)) i)
(transport ⟨DynP⟩-Sum d'))
aux)
Rel-Arr-lem' : ∀ f d' ℓR g~ ->
(transport ⟨DynP⟩-Sum d' ≡ inr g~) × (▸ (λ t -> f ≤mon g~ t)) ->
R (Rel-Arr ℓR) f d'
Rel-Arr-lem' f d' ℓR g~ (eq , f≤g~) =
let aux = rel-transport (sym DynP-Sum) {a1 = inr (next f)} {a2 = inr g~} (lift f≤g~) in
let eq2 = cong₂ transport refl (sym eq) ∙ transport⁻Transport ⟨DynP⟩-Sum d' in
lift (transport (λ i -> rel DynP (MonFun.f InjArr f) (eq2 i)) aux)
injArr : RepresentableRel (DynP ==> 𝕃 DynP) DynP ℓR
injArr : RepresentableRel (DynP ==> 𝕃 DynP) DynP ℓR
injArr {ℓR = ℓR} .R = Rel ℓR
injArr {ℓR = ℓR} .R = Rel
-Arr
ℓR
injArr .leftRep = record {
injArr .leftRep = record {
e = InjArr ;
e = InjArr ;
δX = Id ;
δX = Id ;
...
@@ -296,28 +356,41 @@ injArr .leftRep = record {
...
@@ -296,28 +356,41 @@ injArr .leftRep = record {
injArr {ℓR = ℓR} .rightRep = record {
injArr {ℓR = ℓR} .rightRep = record {
p = mExtU ProjArr ;
p = mExtU ProjArr ;
δX = mExtU (mCompU Δ mRet) ;
--@not sure
δX = mExtU (mCompU Δ mRet) ;
δY = mExtU (mCompU Δ mRet) ;
δY = mExtU (mCompU Δ mRet) ;
dnR = λ lf ld lf≤ld → ext-monotone-het _ _
dnR = λ lf ld lf≤ld → ext-monotone-het _ _
(MonFun.f (mCompU Δ mRet))
(MonFun.f (mCompU Δ mRet))
(MonFun.f ProjArr)
(MonFun.f ProjArr)
(λ f d f≤d -> aux f d f≤d (Rel-lem f d ℓR f≤d)) lf ld lf≤ld ;
(λ f d f≤d -> aux f d f≤d (Rel-
Arr-
lem f d ℓR f≤d)) lf ld lf≤ld ;
dnL = λ ld ld' ld≤ld' → ext-monotone-het _ _
dnL = λ ld ld' ld≤ld' → ext-monotone-het _ _
(MonFun.f ProjArr)
(MonFun.f ProjArr)
(MonFun.f (mCompU Δ mRet))
(MonFun.f (mCompU Δ mRet))
(λ d d' d≤d' →
{!!})
(λ d d' d≤d' →
aux' d d' ℓR d≤d' (Rel-DynP-lem d d' d≤d'))
ld ld' ld≤ld' }
ld ld' ld≤ld' }
where
where
open LiftRelation.Properties
open LiftRelation.Properties
aux : ∀ f d f≤d sigma ->
aux : ∀ f d f≤d sigma ->
LiftRelation._≾_ ⟨ DynP ==> 𝕃 DynP ⟩ ⟨ DynP ==> 𝕃 DynP ⟩ (rel (DynP ==> 𝕃 DynP))
LiftRelation._≾_ ⟨ DynP ==> 𝕃 DynP ⟩ ⟨ DynP ==> 𝕃 DynP ⟩ (rel (DynP ==> 𝕃 DynP))
(δ (ret f)) (MonFun.f ProjArr d)
(δ (ret f)) (MonFun.f ProjArr d)
aux f d f≤d (g~ , eq-inr , f≤g~) = let eq = ProjArr-fun d g~ eq-inr in
aux f d f≤d (g~ , eq-inr , f≤g~) = let eq = ProjArr-fun d g~ eq-inr in
transport ((λ i -> LiftRelation._≾_ _ _ (rel (DynP ==> 𝕃 DynP)) (δ (ret f)) (sym eq i)))
transport (λ i -> LiftRelation._≾_ _ _
(rel (DynP ==> 𝕃 DynP)) (δ (ret f)) (sym eq i))
(ord-θ-monotone ⟨ DynP ==> 𝕃 DynP ⟩ ⟨ DynP ==> 𝕃 DynP ⟩ (rel (DynP ==> 𝕃 DynP))
(ord-θ-monotone ⟨ DynP ==> 𝕃 DynP ⟩ ⟨ DynP ==> 𝕃 DynP ⟩ (rel (DynP ==> 𝕃 DynP))
λ t -> ord-η-monotone ⟨ DynP ==> 𝕃 DynP ⟩ ⟨ DynP ==> 𝕃 DynP ⟩ (rel (DynP ==> 𝕃 DynP)) (f≤g~ t))
λ t -> ord-η-monotone ⟨ DynP ==> 𝕃 DynP ⟩ ⟨ DynP ==> 𝕃 DynP ⟩ (rel (DynP ==> 𝕃 DynP)) (f≤g~ t))
aux' : ∀ d d' ℓR d≤d' sigma ->
LiftRelation._≾_ ⟨ DynP ==> 𝕃 DynP ⟩ ⟨ DynP ⟩ (R (Rel-Arr ℓR)) (MonFun.f ProjArr d) (δ (ret d'))
aux' d d' ℓR d≤d' (inr (g~ , g~' , eq-inr , eq-inr' , g~≤g~')) = -- transport DynP-Sum -> rel sum
let eq = ProjArr-fun d g~ eq-inr in
transport (λ i -> LiftRelation._≾_ _ _ (R (Rel-Arr ℓR)) (sym eq i) (δ (ret d')))
(ord-θ-monotone ⟨ DynP ==> 𝕃 DynP ⟩ ⟨ DynP ⟩ (R (Rel-Arr ℓR))
(λ t → ord-η-monotone ⟨ DynP ==> 𝕃 DynP ⟩ ⟨ DynP ⟩ (R (Rel-Arr ℓR))
(Rel-Arr-lem' (g~ t) d' ℓR g~' (eq-inr' , (λ t1 → let tr = tick-irrelevance g~ t1 t in transport (λ i → (tr i) ≤mon g~' t1) (g~≤g~' t1)))))) -- g~ t ≤mon g~' t1
aux' d d' ℓR d≤d' (inl (n , n' , eq-inl , eq-inr , n≡n')) = let eq = ProjArr-nat d n eq-inl in
transport (λ i → (_ LiftRelation.≾ ⟨ DynP ⟩) (R (Rel-Arr ℓR)) (sym eq i) (δ (ret d'))) (ord-bot _ ⟨ DynP ⟩ (R (Rel-Arr ℓR)) (δ (ret d')))
-- (λ i -> LiftRelation._≾_ _ _ _ (δ (ret f)) (eq i))
-- (λ i -> LiftRelation._≾_ _ _ _ (δ (ret f)) (eq i))
--
--
-- Composing pseudo-representable relations
-- Composing pseudo-representable relations
...
@@ -335,20 +408,30 @@ composeRep : {A B C : Poset ℓ ℓ'} ->
...
@@ -335,20 +408,30 @@ composeRep : {A B C : Poset ℓ ℓ'} ->
TwoCell (d .R .R) (d .R .R) (MonFun.f (c .leftRep .δY)) (MonFun.f f)) ->
TwoCell (d .R .R) (d .R .R) (MonFun.f (c .leftRep .δY)) (MonFun.f f)) ->
RepresentableRel A C (ℓ-max ℓ ℓR)
RepresentableRel A C (ℓ-max ℓ ℓR)
composeRep c d c-filler-l d-filler-r .R = CompMonRel (c .R) (d .R)
composeRep c d c-filler-l d-filler-r .R = CompMonRel (c .R) (d .R)
composeRep {C = C} c d c-filler-l d-filler-r .leftRep = record {
composeRep
{A = A} {B = B}
{C = C} c d c-filler-l d-filler-r .leftRep = record {
e = mCompU (d .leftRep .e) (c .leftRep .e) ;
e = mCompU (d .leftRep .e) (c .leftRep .e) ;
δX = c .leftRep .δX;
δX = c .leftRep .δX;
δY = d .leftRep .δY ;
δY = d .leftRep .δY ;
UpL = λ x z x≤z -> elim
UpL = λ x z x≤z -> elim
(λ _ -> isPropValued-poset C _ _)
(λ _ -> isPropValued-poset C _ _)
(λ { (y , x≤y , y≤z) -> d .leftRep .UpL _ _
(λ { (y , x≤y , y≤z) -> d .leftRep .UpL _ _
(is-antitone (d .R) (c .leftRep .UpL x y x≤y)
{!
d-filler-r
!}
) })
(is-antitone (d .R) (c .leftRep .UpL x y x≤y)
(aux y z y≤z
d-filler-r
)
) })
x≤z ;
x≤z ;
UpR = λ a a' a≤a' → elim (λ _ -> isPropValued-poset {!!} _ _) {!!} {!!} }
UpR = λ x x' x≤x' → {!!} }
where
aux : ∀ y z y≤z sigma -> R (d .R) (MonFun.f (δY (c .leftRep)) y) z
aux y z y≤z (f , r) = {!!}
-- transport (λ i → R (d .R) (MonFun.f (δY (c .leftRep)) y) ( ? ≡⟨ {!!} ⟩ {!!} i)) (r y z y≤z)
{-
MonFun.f f ≡ id
MonFun.f f z ≡ z
d .R .R (MonFun.f (c .leftRep .δY) y) (MonFun.f f z) ≡
R (d .R) (MonFun.f (δY (c .leftRep)) y) z
-}
composeRep c d c-filler-l d-filler-r .rightRep = record {
composeRep c d c-filler-l d-filler-r .rightRep = record {
p = mCompU (c .rightRep .p) (d .rightRep .p) ;
p = mCompU (c .rightRep .p) (d .rightRep .p) ;
δX =
{!!}
;
δX =
c .rightRep .δX
;
δY =
{!!}
;
δY =
d .rightRep .δY
;
dnR = {!!} ;
dnR = {!!} ;
dnL = {!!} }
dnL = {!!} }
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment