# 5. Report contents / Зміст звіту The report is submitted together with the source code. It must contain the following sections. 1. **Title block** — course, laboratory work number and title, student's name and group, date. 2. **Objective** — a short statement of the goal of the work (see [1purpose.md](1purpose.md)). 3. **Brief theory** — the definitions of reflexivity, symmetry, transitivity, antisymmetry, an **equivalence relation**, a **partial order**, and the inverse of a relation, in your own words (see [Lecture 3 — Relations](../../Lectures/CDM-L03.md)). 4. **Chosen representation** — how a relation and the underlying set are stored, and how a pair is looked up (membership test). 5. **Implementation** — the source code of each check (`isReflexive`, `isSymmetric`, `isTransitive`, `isAntisymmetric`, `isEquivalence`, `isPartialOrder`) and of `inverse`, with brief comments. State the programming language used. 6. **Testing** — for each function, a table of inputs and results including the examples of [4task.md](4task.md) **and** your own cases: a relation that fails each property (e.g. a non-symmetric or non-transitive one) so that both `True` and `False` outcomes are demonstrated. 7. **Achieved band** — state which band you reached and which tasks it covers. 8. **Complexity** — the time complexity of each check and how it changes with a hash-based membership test. 9. **Conclusions** — what was implemented, difficulties encountered, and what you learned about the properties of relations. **Submission requirements.** The source must compile/run and reproduce the example outputs of [4task.md](4task.md).