Lemma graph_zig_zag_strong_induction_helper {g : graph} {P : vertex g -> UU} : ∏ n, ∏ (x y : vertex g), (P x) -> (∏ (a b : vertex g), P a -> (edge a b ⨿ edge b a) -> P b) -> graph_zig_zag_of_length n x y -> P y. Proof. intro n. induction n as [|n Hn]. - intros x y Hx _ gs. now rewrite <- gs. - intros x y Hx eind gs. destruct gs as [z [xz gs]]. use (Hn _ _ _ eind gs). exact (eind x z Hx xz). Defined.
Require Import UniMath.Foundations.PartD. Require Import UniMath.Foundations.Propositions. Require Import UniMath.Foundations.Sets. Require Import UniMath.MoreFoundations.Tactics. Require Import UniMath.MoreFoundations.Propositions. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.Adjunctions.Core.