You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a generalization of the idea that a list is split into two sublists in an order-respecting
way. The core definition is as follows. As usual we should have specialized versions for Setoid & PropositionalEquality.
open importRelation.BinarymoduleInterleaving {a b l r} {A :Set a} {B :Set b} (L : REL A B l) (R : REL A B r) whereopen importData.List.Baseinfix3 _≣_⨝_
data_≣_⨝_: List A → List B → List B →Set r where[] : [] ≣ [] ⨝ []
_ˡ∷_ :∀ {a as b l r} → L a b → as ≣ l ⨝ r → a ∷ as ≣ b ∷ l ⨝ r
_ʳ∷_ :∀ {a as l b r} → R a b → as ≣ l ⨝ r → a ∷ as ≣ l ⨝ b ∷ r
This thing has interesting interactions with OPEs e.g.
split : xs' ⊆ xs → xs ≣ us ⨝ vs →
∃ λ us' → ∃ λ vs' → xs' ≣ us' ⨝ vs' × us' ⊆ us × vs' ⊆ vs
The text was updated successfully, but these errors were encountered:
This is a generalization of the idea that a list is split into two sublists in an order-respecting
way. The core definition is as follows. As usual we should have specialized versions for
Setoid
&PropositionalEquality
.This thing has interesting interactions with OPEs e.g.
The text was updated successfully, but these errors were encountered: