Built with Alectryon, running Coq+SerAPI v8.19.0+0.19.0. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use instead of Ctrl.
[Loading ML file ssrmatching_plugin.cmxs (using legacy method) ... done]
[Loading ML file ssreflect_plugin.cmxs (using legacy method) ... done]
[Loading ML file ring_plugin.cmxs (using legacy method) ... done]
[Loading ML file coq-elpi.elpi ... done]
Notation "_ + _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ - _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ <= _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ < _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ >= _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ > _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ <= _ <= _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ < _ <= _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ <= _ < _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ < _ < _" was already used in scope nat_scope. [notation-overridden,parsing,default]
Notation "_ * _" was already used in scope nat_scope. [notation-overridden,parsing,default]
(** We define a function converting a constant [c] to a function that ignores its argument and returns [c]. *) Definition constant {X Y : Type} (c : Y) : (X -> Y) := fun _ => c. (** We define a notation for the big concatenation operator.*) Reserved Notation "\cat_ ( m <= i < n ) F" (at level 41, F at level 41, i, m, n at level 50, format "'[' \cat_ ( m <= i < n ) '/ ' F ']'"). Notation "\cat_ ( m <= i < n ) F" := (\big[cat/[::]]_(m <= i < n) F%N) : nat_scope. Reserved Notation "\cat_ ( m <= i < n | P ) F" (at level 41, F at level 41, P at level 41, i, m, n at level 50, format "'[' \cat_ ( m <= i < n | P ) '/ ' F ']'"). Notation "\cat_ ( m <= i < n | P ) F" := (\big[cat/[::]]_(m <= i < n | P) F%N) : nat_scope. Reserved Notation "\cat_ ( i < n ) F" (at level 41, F at level 41, i, n at level 50, format "'[' \cat_ ( i < n ) '/ ' F ']'"). Notation "\cat_ ( i < n ) F" := (\big[cat/[::]]_(i < n) F%N) : nat_scope. Reserved Notation "\cat_ ( i < n | P ) F" (at level 41, F at level 41, i, n at level 50, format "'[' \cat_ ( i < n | P ) '/ ' F ']'"). Notation "\cat_ ( i < n | P ) F" := (\big[cat/[::]]_(i < n | P) F%N) : nat_scope. Reserved Notation "\cat_ ( x <- xs | P ) F" (at level 41, F at level 41, x, xs at level 50, format "'[' \cat_ ( x <- xs | P ) '/ ' F ']'"). Notation "\cat_ ( x <- xs | P ) F" := (\big[cat/[::]]_(x <- xs | P) F) : big_scope. Reserved Notation "\cat_ ( x <- xs ) F" (at level 41, F at level 41, x, xs at level 50, format "'[' \cat_ ( x <- xs ) '/ ' F ']'"). Notation "\cat_ ( x <- xs ) F" := (\big[cat/[::]]_(x <- xs) F) : big_scope.