# The induction principle for propositional truncation
```agda
module foundation.induction-principle-propositional-truncation where
```
<details><summary>Imports</summary>
```agda
open import foundation.dependent-pair-types
open import foundation.universe-levels
open import foundation-core.identity-types
open import foundation-core.propositions
open import foundation-core.transport-along-identifications
```
</details>
## Idea
The induction principle for the propositional truncations present propositional
truncations as higher inductive types.
## Definition
```agda
case-paths-induction-principle-propositional-truncation :
{ l : Level} {l1 l2 : Level} {A : UU l1}
( P : Prop l2) (α : (p q : type-Prop P) → p = q) (f : A → type-Prop P) →
( B : type-Prop P → UU l) → UU (l ⊔ l2)
case-paths-induction-principle-propositional-truncation P α f B =
(p q : type-Prop P) (x : B p) (y : B q) → tr B (α p q) x = y
induction-principle-propositional-truncation :
(l : Level) {l1 l2 : Level} {A : UU l1}
(P : Prop l2) (α : (p q : type-Prop P) → p = q) (f : A → type-Prop P) →
UU (lsuc l ⊔ l1 ⊔ l2)
induction-principle-propositional-truncation l {l1} {l2} {A} P α f =
( B : type-Prop P → UU l) →
( g : (x : A) → (B (f x))) →
( β : case-paths-induction-principle-propositional-truncation P α f B) →
Σ ((p : type-Prop P) → B p) (λ h → (x : A) → h (f x) = g x)
```
## Properties
### A type family over the propositional truncation comes equipped with the structure to satisfy the path clause of the induction principle if and only if it is a family of propositions
```agda
abstract
is-prop-case-paths-induction-principle-propositional-truncation :
{ l : Level} {l1 l2 : Level} {A : UU l1}
( P : Prop l2) (α : (p q : type-Prop P) → p = q) (f : A → type-Prop P) →
( B : type-Prop P → UU l) →
case-paths-induction-principle-propositional-truncation P α f B →
( p : type-Prop P) → is-prop (B p)
is-prop-case-paths-induction-principle-propositional-truncation P α f B β p =
is-prop-is-proof-irrelevant (λ x → pair (tr B (α p p) x) (β p p x))
case-paths-induction-principle-propositional-truncation-is-prop :
{ l : Level} {l1 l2 : Level} {A : UU l1}
( P : Prop l2) (α : (p q : type-Prop P) → p = q) (f : A → type-Prop P) →
( B : type-Prop P → UU l) →
( (p : type-Prop P) → is-prop (B p)) →
case-paths-induction-principle-propositional-truncation P α f B
case-paths-induction-principle-propositional-truncation-is-prop
P α f B is-prop-B p q x y =
eq-is-prop (is-prop-B q)
```