<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Grygoriy Zholtkevych[</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Event Universes: Speci cation and Analysis Using Coq Proof Assistant</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Mathematics and Computer Science V.N. Karazin Kharkiv national University</institution>
          ,
          <addr-line>4, Svobody Sqr., Kharkiv, 61022</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>0000</year>
      </pub-date>
      <volume>0002</volume>
      <abstract>
        <p>In the paper, the formal speci cation of event universes theory developed with using Coq Proof Assistant is presented. The main attention is paid on the discussion of the de nition and obtained facts. In the same time, a proof technique is not the subject of this discussion. The reader can get acquainted with the details of the proof technique, referring to the source text of Coq-scripts hosted on the GitHub, using the links provided in the text of the paper.</p>
      </abstract>
      <kwd-group>
        <kwd>causality relationship Calculus of Inductive Constructions</kwd>
        <kwd>Coq Proof Assistant decidability class type Category Theory</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Inception of distributed computation technology has posed a problem of
orchestration of di erent computational device operating. One of the key problem in
this context is to ensure adequate responses of a computational device involved
into the computation to requests of other computational devices involved into
the computation too in order to ensure all these computational devices behave
consistently and purposefully. Thus, it is needed to give system developers tools
for speci cation and analysis of timing constraints for ensuring the consistent
behaviours of hardware and software constituted the system being under design.
Hence, we may claim that carefully vetted speci cation guaranteeing the system
behaviour consistency in the time is the important part of a good design for a
distributed system.</p>
      <p>The speci city of the design process for distributed systems is the
impossibility to apply the methods of dynamic analysis of program code to ensure
its correctness. The reason for the validity of this claim is that any additional
observations of the system are not possible without inclusion into the system
special components, which collect the needed information but at the same time
these components change the system behaviour. In some sense, we have
behaviour like quantum behaviour: any observation changes essentially the system
behaviour. In the situation when dynamical analysis of the system correctness
is not useful, the static analysis remains the unique method for assessment of
system behaviour correctness. Thus, the creation of a rigorous theory, which
would ensure computer aided in developing special software for veri cation and
analysis of causality speci cations for distributed systems is a very important
problem for nowadays.</p>
      <p>
        To solve the problem we propose to use Coq Proof Assistant [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and for
constructing the corresponding formal theory. Informally, we use as the theoretical
framework for our construction the following papers, which had initiated and
developed a number of logical time models. First of all, this is L. Lamport's paper
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Further, we need to mention G. Winskel's papers [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. We use also as informal
background papers of C. Andre and F. Mallet [
        <xref ref-type="bibr" rid="ref4 ref5 ref6">4,5,6</xref>
        ]. Own results presented in
[
        <xref ref-type="bibr" rid="ref7 ref8">7,8</xref>
        ] are also used.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries: Binary Relations</title>
      <p>Theory of binary relations form a mathematical basis for studying causality
relationship. Therefore, we present the Coq-speci cation1 used below for the
some needed for us fragment of the binary relation theory in this section.</p>
      <sec id="sec-2-1">
        <title>We stress that we assume the some variant of the extensionality formalised as the axiom called extensionality.</title>
        <p>Axiom extensionality :</p>
        <p>8 (A B : Type) (f g : A ! B), (8 x : A, f x = g x) ! f = g.</p>
      </sec>
      <sec id="sec-2-2">
        <title>The next code section de nes bunary relations and their properties.</title>
        <p>Section EventPreliminaries.</p>
        <p>Variable U : Type.</p>
        <p>Definition BiRel : Type := U ! U ! Prop.</p>
        <p>Definition Reflexive (R : BiRel) : Prop := 8 x : U, R x x.
Definition Irreflexive (R : BiRel) : Prop := 8 x : U, : R x x.
Definition Symmetric (R : BiRel) : Prop := 8 x y : U, R x y ! R y x.
Definition Transitive (R : BiRel) : Prop :=</p>
        <p>8 x y z : U, R x y ! R y z ! R x z.</p>
        <p>Inductive Preorder (R : BiRel) : Prop :=</p>
        <sec id="sec-2-2-1">
          <title>PreorderDef : Reflexive R ! Transitive R ! Preorder R.</title>
          <p>Inductive Equivalence (R : BiRel) : Prop :=
EquivalenceDef :</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>Reflexive R ! Transitive R ! Symmetric R ! Equivalence R.</title>
          <p>Inductive StrictOrder (R : BiRel) : Prop :=</p>
        </sec>
        <sec id="sec-2-2-3">
          <title>StrictOrderDef : Irreflexive R ! Transitive R ! StrictOrder R.</title>
          <p>Definition Decidable (R : BiRel) : Prop :=</p>
          <p>8 x y : U, R x y _ : R x y.</p>
          <p>End EventPreliminaries.
1 This speci cation is contained in https://github.com/gzholtkevych/Causality/
blob/master/Coq/EventPreliminaries.v.</p>
          <p>Further, we give de nitions for the polymorphic identity function and
composition of functions.</p>
          <p>Definition id fA : Typeg := fun x : A ) x.</p>
          <p>Definition compose fA B C : Typeg (f : A ! B) (g : B ! C) : A ! C :=
fun x : A ) g (f x).</p>
          <p>Notation "g * f" := (compose f g)</p>
          <p>(at level 40, left associativity) : event_scope.</p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>Now we prove the following propositions.</title>
        <p>Proposition 1 (id_is_leftId).</p>
        <p>For any sets A and B and function f : A ! B, the equation idB f = f holds.
Proposition 2 (id_is_rightId).</p>
        <p>For any sets A and B and function f : A ! B, the equation f idA = f holds.
Proposition 3 (compose_is_assoc ).</p>
        <p>For any sets A, B, C, and D and functions f : A ! B, g : B ! C, and
h : C ! D, the equation (h g) f = h (g f ) holds.</p>
      </sec>
      <sec id="sec-2-4">
        <title>We need also the following concept</title>
        <p>Definition Decidable (R : BiRel) : Prop := 8 x y : U, R x y _ : R x y.
End EventPreliminaries.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Event Universes</title>
      <p>This section introduces in the logical time model that focuses on the causality
relationships between event occurrences called instants below.
3.1 Informal Meaning and Mathematical De nitions
The principal causality relationship between events A and B is labelled by the
sentence \the event A causes the event B". We consider informally that the
semantic meaning this sentence is the statement \if the event A has not occurred
then the event B cannot occur" rather than the statement \if the event A has
occurred then the event B should also occur". It is evident that this semantic
meaning leads to the following properties of the causality relationship</p>
      <sec id="sec-3-1">
        <title>1. each event causes itself;</title>
      </sec>
      <sec id="sec-3-2">
        <title>2. if an event A causes an event B and the event B causes an event C then the event A causes the event C.</title>
      </sec>
      <sec id="sec-3-3">
        <title>Thus, we can accept the following de nition of an event universe.</title>
        <p>De nition 1. A set U equipped with a preorder (quasi-order) relation \ " is
below called an event universe.</p>
        <p>The statement \x y" where x; y 2 U is pronounced as \x causes y".</p>
      </sec>
      <sec id="sec-3-4">
        <title>It is well known that each preorder generates an equivalence and a strict</title>
        <p>order, which are below called synchronisation and precedence and denoted by
\+" and \&lt;" respectively. The de nitions of these relations are the following
De nition 2. Let a set U equipped with a preorder \ " be an event universe
then
1. the relation x + y between any x; y 2 U (pronounced x and y are
synchronous) is de ned by the condition x y and y x and called the
synchronisation relation;
2. the relation x &lt; y between any x; y 2 U (pronounced x precedes y) is de ned
by the condition x y and :y x and called the precedence relation.</p>
      </sec>
      <sec id="sec-3-5">
        <title>Moreover, the next two relations called mutual exclusion and independence are useful too.</title>
        <p>De nition 3. Let a set U equipped with a preorder \ " be an event universe
then
1. the relation x # y between any x; y 2 U (pronounced x and y are mutually
exclusive) is de ned by the condition x &lt; y or y &lt; x and called the mutual
exclusive relation;
2. the relation x k y between any x; y 2 U (pronounced x and y are independent)
is de ned by the condition :x y and :y x and called the independence
relation.
3.2</p>
        <p>
          Formal Model of an Event Universe and Used Notation
Now we are ready to specify the formal model of the concept of an event universe
using Coq Proof Assistant. We consider the type classes [
          <xref ref-type="bibr" rid="ref10 ref9">9,10</xref>
          ] as the appropriate
construction of the Gallina speci cation language to describe the required model.
More details, one can nd in the following fragment of Coq-script2.
        </p>
      </sec>
      <sec id="sec-3-6">
        <title>The concept of an event universe introduces as follows</title>
        <p>Class Event fA : Typeg :=
f universe := A ;</p>
        <p>causality : BiRel universe ;
(* Constraints *)
causality_constraint (* causality is a preorder *) :</p>
        <p>Preorder universe causality ;
(* Derived relations *)
synchronisation : BiRel universe :=</p>
        <p>fun x y ) causality x y ^ causality y x ;
2 The complete code is contained in https://github.com/gzholtkevych/Causality/
blob/master/Coq/EventDefinitions.v</p>
        <p>precedence : BiRel universe :=</p>
        <p>fun x y ) causality x y ^ : causality y x ;
exclusion : BiRel universe :=</p>
        <p>fun x y ) precedence x y _ precedence y x ;
independence : BiRel universe :=</p>
        <p>fun x y ) : causality x y ^ : causality y x
This script speci es an event universe as some type called universe equipped with
a binary relations causality. The script imposes only one constraint, namely, the
relation causality should be a preorder. The class de nition determines also the
derived relations syncronisation, precedence, exclusion, and independence in
accordance with Def. 2 and 3.</p>
      </sec>
      <sec id="sec-3-7">
        <title>In order for scripts specifying the formal theory being developed and giving proofs of the facts are more compact and readable, the following notation is introduced.</title>
        <p>Notation "x y" (* x causes y *) := (causality x y)</p>
        <p>(at level 70) : event_scope.</p>
        <p>Notation "x + y" (* x and y are synchronous *) := (synchronisation x y)
(at level 70) : event_scope.</p>
        <p>Notation "x &lt; y" (* x precedes y *) :=</p>
        <p>(precedence x y) (at level 70) : event_scope.</p>
        <p>Notation "x # y" (* x and y are mutually exclusive *) := (exclusion x y)
(at level 70) : event_scope.</p>
        <p>Notation "x k y" (* x and y are independent *) := (independence x y)
(at level 70) : event_scope.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Properties of an Event Universe</title>
      <p>
        In this section, we establish several properties of the relations mentioned in the
speci cation of the type class Event. In this section, we present several simple
properties of the relations mentioned in the speci cation of type class Event.
Our presentations are the formulations of the properties as mathematical
statements. Each such a statement is equipped with the reference to the
corresponding CIC-term [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], which one can nd in https://github.com/gzholtkevych/
Causality/blob/master/Coq/EventRelationFacts.v.
      </p>
      <sec id="sec-4-1">
        <title>Everywhere in this section, we assume that U is an event universe equipped</title>
        <p>with the causality relation \ " and the synchronisation relation \ + ",
precedence relation \ &lt; ", mutual exclusion relation \ # ", and independence realtion
\ k " are de ned by Def. 2 and Def. 3.
4.1</p>
        <p>Simple Properties of Relations</p>
      </sec>
      <sec id="sec-4-2">
        <title>Firstly, we establish the properties of the synchronisation relation.</title>
        <p>Proposition 4 (synchronisation_implies_causality ).
For any events x and y, x + y implies x y.
Lemma 1 (synchronisation_is_reflexive ).
The synchronisation relation is re exive.</p>
        <p>Lemma 2 (synchronisation_is_transitive ).
The synchronisation relation is transitive.</p>
        <p>Lemma 3 (synchronisation_is_symmetric ).
The synchronisation relation is symmetric.</p>
      </sec>
      <sec id="sec-4-3">
        <title>These lemmas ensure immediately the following proposition.</title>
        <p>Proposition 5 (synchronisation_is_equivalence ).
The synchronisation relation is an equivalence.</p>
      </sec>
      <sec id="sec-4-4">
        <title>Further, we establish properties of the precedence relation.</title>
        <p>Proposition 6 (precedence_implies_causality ).
For any events x and y, x &lt; y implies x y.
Lemma 4 (precedence_is_irreflexive ).
The precedence relation is irre exive.</p>
        <p>Lemma 5 (precedence_is_transitive ).
The precedence relation is transitive.</p>
      </sec>
      <sec id="sec-4-5">
        <title>These lemmas ensure immediately the following proposition.</title>
        <p>Proposition 7 (precedence_is_strictOrder ).
The precedence relation is a strict order.</p>
      </sec>
      <sec id="sec-4-6">
        <title>Now we establish properties of the mutual exclusion relation.</title>
        <p>Proposition 8 (exclusion_is_irreflexive ).
The mutual exclusion relation is irre exive.
Proposition 9 (exclusion_is_symmetric ).
The mutual exclusion relation is symmetric.</p>
      </sec>
      <sec id="sec-4-7">
        <title>The independence relation has the same properties.</title>
        <p>Proposition 10 (independence_is_irreflexive ).</p>
        <p>The independence relation is irre exive.</p>
        <p>Proposition 11 (independence_is_symmetric ).</p>
        <p>The independence relation is symmetric.
The next group of facts concerns the incompatibility of the relations being
studied.</p>
        <p>Proposition 12 (incompatibility_of_synchronisation_and_exclusion ).
For any events x and y, at most one of the statements x + y and x#y is ful lled.
Proposition 13 (incompatibility_of_synchronisation_and_independence ).
For any events x and y, at most one of the statements x + y and x k y is
ful lled.</p>
        <p>Proposition 14 (incompatibility_of_exclusion_and_independence ).
For any events x and y, at most one of the statements x#y and x k y is ful lled.
One can note that the mutual exclusion relation between events x and y ensures
either x &lt; y or y &lt; x but does not determine what of these precedence
statements is ful lled. To determine what precedence statement is valid one can use
the following fact.</p>
        <p>Proposition 15 (causality_distinguishes_exclusion ).</p>
        <p>For any events x and y such that x # y, x y implies x &lt; y.</p>
        <p>Further reasoning is aimed at identifying conditions that ensure the ful llment
of the following statement called ixsDecomposition that means the following
for any events x and y; x k y _ x # y _ x + y:</p>
      </sec>
      <sec id="sec-4-8">
        <title>The next theorem formulates the obtained result.</title>
        <p>Theorem 1 (decidable_causality_is_equivalent_to_ixsDecomposition ).
ixsDecomposition is ful lled if and only if the causality relation is decidable.
4.3</p>
        <p>Congruence Properties
In this subsection, we establish interrelations between the synchronisation
relation and other relations being studied. The corresponding scripts proving these
facts one can nd at https://github.com/gzholtkevych/Causality/blob/
master/Coq/EventSynchronisationCongruenceProperties.v.
Proposition 16 (congruence_causality ). For any events x, x0 and y, y0 such
that x + x0 and y + y0, x y implies x0 y0.</p>
        <p>Proposition 17 (congruence_precedence ). For any events x, x0 and y, y0 such
that x + x0 and y + y0, x &lt; y implies x0 &lt; y0.</p>
        <p>Proposition 18 (congruence_exclusion ). For any events x, x0 and y, y0 such
that x + x0 and y + y0, x # y implies x0 # y0.</p>
        <p>Proposition 19 (congruence_independence ). For any events x, x0 and y, y0
such that x + x0 and y + y0, x k y implies x0 k y0.</p>
        <p>Summing up the above we can state that the synchronisation relation is a
congruence for all other considered relations.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Morphisms of Event Universes</title>
      <p>In this section, we beat a path to using Category Theory3 for studying causality
in distributed systems. The concept of morphism is the key to such
consideration. The speci cation of type class presented below EventMorphism can be
found at https://github.com/gzholtkevych/Causality/blob/master/Coq/
EventDefinitions.v.</p>
      <p>Class EventMorphism fA B : Typeg `fEvent Ag `fEvent Bg (f : A ! B) :=
f arrow := f ;
(* Constraints *)
preserving_sync : 8 x y : A, x + y ! arrow x + arrow y ;
preserving_precedence : 8 x y : A, x &lt; y ! arrow x &lt; arrow y
In other words, an event morphism is a mapping of corresponding event sets
that preserves the synchronisation and precedence relations.</p>
      <sec id="sec-5-1">
        <title>The proving scenarios for the facts presented above one can nd at https://</title>
        <p>github.com/gzholtkevych/Causality/blob/master/Coq/EventMorphisms.v</p>
      </sec>
      <sec id="sec-5-2">
        <title>First of all, we establish that morphism preserves all relations, except perhaps independence relations.</title>
        <p>Proposition 20 (preserving_sync ).</p>
        <p>For any event universes A and B, morphism f : A ! B, and events x and y of
A such that x + y, the statement f x + f y is ful lled.</p>
        <p>Proposition 21 (preserving_prec ).</p>
        <p>For any event universes A and B, morphism f : A ! B, and events x and y of
A such that x &lt; y, the statement f x &lt; f y is ful lled.</p>
      </sec>
      <sec id="sec-5-3">
        <title>Now we check that identity mapping is a morphism.</title>
        <p>Proposition 22 (id_is_morphism).</p>
        <p>For any event universe A, idA is a morphism.</p>
      </sec>
      <sec id="sec-5-4">
        <title>Let us make sure that the composition of morphisms is a morphism.</title>
        <p>Proposition 23 (composition_of_morphisms_is_morphism ).</p>
        <p>For any event universes A, B, and C and morphisms f : A ! B and g : B ! C,
g f is a morphism.</p>
        <p>Combining Prop. 22 and 23 with Prop. 1{3 one can obtain the following theorem.
Theorem 2. The class of event universes equipped with morphisms is a
category.</p>
        <p>
          Category-theoretic studying causality relationships was initiated in the papers
[
          <xref ref-type="bibr" rid="ref7 ref8">7,8</xref>
          ].
3 See, for example, [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>This paper presents the formal approach to study causality relationships in
distributed systems.</p>
      <sec id="sec-6-1">
        <title>In the paper, the basic formal theory developed with Coq Proof Assistant</title>
        <p>has been described.</p>
        <p>Further research and development may be focused on
{ the formalisation with Coq Proof Assistant of niteness conditions to
emphasise the subclass of discrete event universes;
{ the identi cation of states related to events to try to construct a natural
coalgebra for specifying the behaviour of systems being studied;
{ the identi cation of logical clocks for obtaining some complete and usable
causality constraint speci cation language.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bertot</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casteran</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <source>Interactive Theorem Proving and Program Development</source>
          . Springer-Verlag Berlin Heidelberg (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Lamport</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Time, clocks, and the ordering of events in a distributed system</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>21</volume>
          (
          <issue>7</issue>
          ),
          <volume>558</volume>
          {
          <fpage>565</fpage>
          (
          <year>1978</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Winskel</surname>
          </string-name>
          , G.:
          <article-title>Event structures</article-title>
          . In: Brauer,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Reisig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Rozenberg</surname>
          </string-name>
          ,
          <string-name>
            <surname>G</surname>
          </string-name>
          . (eds.) Petri Nets: Applications and Relationships to Other
          <source>Models of Concurrency. LNCS</source>
          , vol.
          <volume>255</volume>
          , pp.
          <volume>325</volume>
          {
          <issue>392</issue>
          (
          <year>1986</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Andre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mallet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          : UML/MARTE CCSL,
          <article-title>Signal and Petri nets</article-title>
          .
          <source>Research Report RR-6545</source>
          , INRIA (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Andre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mallet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De</surname>
            <given-names>Simone</given-names>
          </string-name>
          , R.:
          <article-title>Logical time: speci cation vs. implementation</article-title>
          .
          <source>ACM SIGSOFT Software Engineering Notes</source>
          <volume>36</volume>
          (
          <issue>1</issue>
          ), 1{
          <issue>8</issue>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Mallet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>MARTE/CCSL for modeling cyber-physical systems</article-title>
          . In: Drechsler,
          <string-name>
            <surname>R.</surname>
          </string-name>
          , Kuhne, U. (eds.)
          <article-title>Formal Modeling and Veri cation of Cyber-Physical Systems</article-title>
          . Springer Vieweg, Wiesbaden (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Zholtkevych</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>El Zein</surname>
          </string-name>
          , H.:
          <article-title>Two Approaches to Modelling Logical Time in CyberPhysical Systems</article-title>
          . In: Basliades,
          <string-name>
            <surname>N.</surname>
          </string-name>
          , et al. (eds.) ICT in Education, Research, and Industrial Applications, CCIS, vol.
          <volume>826</volume>
          , pp.
          <volume>21</volume>
          {
          <fpage>40</fpage>
          . Spinger International Publishing AG (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Zholtkevych</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>El Zein</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polyakova</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Category Methods for Modelling Logical Time Based on the Concept of Clocks</article-title>
          . In: Ermolayev,
          <string-name>
            <surname>V.</surname>
          </string-name>
          , et al. (eds.) ICT in Education, Research, and Industrial Applications, CCIS, vol.
          <volume>1007</volume>
          , pp.
          <volume>89</volume>
          {
          <fpage>101</fpage>
          . Spinger International Publishing AG (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>9. The Coq Development Team: Type Classes</article-title>
          .
          <source>In: The Coq Reference Manual. INRIA, 8.9.0 edn</source>
          . (
          <year>2019</year>
          ), https://coq.inria.fr/distrib/current/refman/index.html,
          <source>(accessed 2.02</source>
          .
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Lampropoulos</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pierce</surname>
          </string-name>
          , P.C.:
          <article-title>QuickChick: Property-Based Testing in Coq, Software Foundations</article-title>
          , vol.
          <volume>4</volume>
          (
          <issue>2018</issue>
          ), https://softwarefoundations.cis.upenn.edu/ qc-current/index.html,
          <source>(accessed 2.02</source>
          .
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <article-title>The Coq Development Team: The Gallina speci cation language</article-title>
          .
          <source>In: The Coq Reference Manual. INRIA, 8.9.0 edn</source>
          . (
          <year>2019</year>
          ), https://coq.inria.fr/distrib/ current/refman/index.html,
          <source>(accessed 2.02</source>
          .
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Awodey</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <source>Category Theory, Oxford Logic Guides</source>
          , vol.
          <volume>52</volume>
          . Oxford University Press, 2nd edn. (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>