Idris2Doc : TypeAligned.Duo

TypeAligned.Duo

(source)
Like 'Pair' but type-aligned.  Called "Duo" because they are NOT
two-of-a-kind ("pair", "double", "couple"), since the indexes may differ.

Definitions

recordDuo : Rela->a->a->Type
  Two relationshpis / proofs that meet in the middle

Totality: total
Visibility: public export
Constructor: 
MkDuo : (1_ : pxy) -> (1_ : pyz) ->Duopxz

Projections:
.fst : ({rec:0} : Duopxz) ->px ({rec:0}.y)
.snd : ({rec:0} : Duopxz) ->p ({rec:0}.y) z
0.y : Duopxz->a

Hint: 
Show (pxy) =>Show (Duopxy)
0.y : Duopxz->a
Totality: total
Visibility: public export
.fst : ({rec:0} : Duopxz) ->px ({rec:0}.y)
Totality: total
Visibility: public export
.snd : ({rec:0} : Duopxz) ->p ({rec:0}.y) z
Totality: total
Visibility: public export
fst : (two : Duopxz) ->px (two.y)
  Explicit prefix record projection

Totality: total
Visibility: export
snd : (two : Duopxz) ->p (two.y) z
  Explicit prefix record projection

Totality: total
Visibility: export
eqMeetOnce : pxy-@ (pxy-@Bool) -> (1l : Duopxz) -> (1r : Duopxz) -> (0_ : l.y=r.y) ->Bool
  Linear 'eqMeet'

Totality: total
Visibility: export
eqMeet : (pxy->pxy->Bool) -> (l : Duopxz) -> (r : Duopxz) -> (0_ : l.y=r.y) ->Bool
  Something like "Eq", but I'm not sure it's useful.

Totality: total
Visibility: export
mapReduceOnce : {0f : a->b} -> {0q : Relb} ->pxy-@q (fx) (fy) ->qxy-@ (qyz-@qxz) ->Duopxy-@q (fx) (fy)
  Linear 'mapReduce'

Totality: total
Visibility: export
mapOnce : {0f : a->b} ->pxy-@q (fx) (fy) ->Duopxy-@Duoq (fx) (fy)
  Linear 'map'

Totality: total
Visibility: export
mapReduce : {0f : a->b} -> {0q : Relb} -> (pxy->q (fx) (fy)) -> (qxy->qyz->qxz) ->Duopxy->q (fx) (fy)
  Reduce while changing relation

Totality: total
Visibility: export
map : {0f : a->b} -> (pxy->q (fx) (fy)) ->Duopxy->Duoq (fx) (fy)
  Change inner relation

Totality: total
Visibility: export
reduceOnce : pxy-@ (pyz-@pxz) ->Duopxy-@pxy
  Linear 'reduce'

Totality: total
Visibility: export
reduce : (pxy->pyz->pxz) ->Duopxy->pxy
  Reduce to inner relation

Totality: total
Visibility: export