Dependent products
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type
Γ ⊢ ∏ 𝑥 : 𝐴 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ ∏ x : A B type
Π-form Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ , 𝑥 : 𝐴 ⊢ 𝑏 : 𝐵 Γ , x : A ⊢ b : B
Γ ⊢ 𝜆 ( 𝑥 : 𝐴 ) . 𝑏 : ∏ 𝑥 : 𝐴 𝐵 Γ ⊢ λ ( x : A ) . b : ∏ x : A B
Π-intro
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑓 : ∏ 𝑥 : 𝐴 𝐵 Γ ⊢ f : ∏ x : A B Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A
Γ ⊢ 𝑓 𝑎 : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ f a : B [ a / x ]
Π-elim Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ , 𝑥 : 𝐴 ⊢ 𝑏 : 𝐵 Γ , x : A ⊢ b : B Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A
Γ ⊢ ( 𝜆 ( 𝑥 : 𝐴 ) . 𝑏 ) 𝑎 ≡ 𝑏 [ 𝑎 / 𝑥 ] : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ ( λ ( x : A ) . b ) a ≡ b [ a / x ] : B [ a / x ]
Π-β Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑓 : ∏ 𝑥 : 𝐴 𝐵 Γ ⊢ f : ∏ x : A B
Γ ⊢ 𝑓 ≡ 𝜆 ( 𝑥 : 𝐴 ) . 𝑓 𝑥 : ∏ 𝑥 : 𝐴 𝐵 Γ ⊢ f ≡ λ ( x : A ) . f x : ∏ x : A B
Π-η
The corresponding named congruence rules restore the formation and typing presuppositions of both sides:
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝐴 ′ 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A ′ type Γ ⊢ 𝐴 ≡ 𝐴 ′ 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A ≡ A ′ type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ , 𝑥 : 𝐴 ⊢ 𝐵 ′ 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B ′ type Γ , 𝑥 : 𝐴 ⊢ 𝐵 ≡ 𝐵 ′ 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B ≡ B ′ type Γ , 𝑥 : 𝐴 ′ ⊢ 𝐵 ′ 𝗍 𝗒 𝗉 𝖾 Γ , x : A ′ ⊢ B ′ type
Γ ⊢ ∏ 𝑥 : 𝐴 𝐵 ≡ ∏ 𝑥 : 𝐴 ′ 𝐵 ′ 𝗍 𝗒 𝗉 𝖾 Γ ⊢ ∏ x : A B ≡ ∏ x : A ′ B ′ type
Π-form-eq Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝐴 ′ 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A ′ type Γ ⊢ 𝐴 ≡ 𝐴 ′ 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A ≡ A ′ type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ , 𝑥 : 𝐴 ⊢ 𝐵 ′ 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B ′ type Γ , 𝑥 : 𝐴 ⊢ 𝐵 ≡ 𝐵 ′ 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B ≡ B ′ type Γ , 𝑥 : 𝐴 ′ ⊢ 𝐵 ′ 𝗍 𝗒 𝗉 𝖾 Γ , x : A ′ ⊢ B ′ type Γ , 𝑥 : 𝐴 ⊢ 𝑏 : 𝐵 Γ , x : A ⊢ b : B Γ , 𝑥 : 𝐴 ⊢ 𝑏 ′ : 𝐵 Γ , x : A ⊢ b ′ : B Γ , 𝑥 : 𝐴 ⊢ 𝑏 ≡ 𝑏 ′ : 𝐵 Γ , x : A ⊢ b ≡ b ′ : B
Γ ⊢ 𝜆 ( 𝑥 : 𝐴 ) . 𝑏 ≡ 𝜆 ( 𝑥 : 𝐴 ′ ) . 𝑏 ′ : ∏ 𝑥 : 𝐴 𝐵 Γ ⊢ λ ( x : A ) . b ≡ λ ( x : A ′ ) . b ′ : ∏ x : A B
λ-eq
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑓 : ∏ 𝑥 : 𝐴 𝐵 Γ ⊢ f : ∏ x : A B Γ ⊢ 𝑓 ′ : ∏ 𝑥 : 𝐴 𝐵 Γ ⊢ f ′ : ∏ x : A B Γ ⊢ 𝑓 ≡ 𝑓 ′ : ∏ 𝑥 : 𝐴 𝐵 Γ ⊢ f ≡ f ′ : ∏ x : A B Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑎 ′ : 𝐴 Γ ⊢ a ′ : A Γ ⊢ 𝑎 ≡ 𝑎 ′ : 𝐴 Γ ⊢ a ≡ a ′ : A
Γ ⊢ 𝑓 𝑎 ≡ 𝑓 ′ 𝑎 ′ : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ f a ≡ f ′ a ′ : B [ a / x ]
app-eq
The derived evaluation form includes the fresh generic argument explicitly:
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑓 : ∏ 𝑥 : 𝐴 𝐵 Γ ⊢ f : ∏ x : A B 𝑧 ∉ d o m ( Γ ) z ∉ dom ( Γ )
Γ , 𝑧 : 𝐴 ⊢ 𝑓 𝑧 : 𝐵 [ 𝑧 / 𝑥 ] Γ , z : A ⊢ f z : B [ z / x ]
Π-ev
Dependent sums and unit
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type
Γ ⊢ ∑ 𝑥 : 𝐴 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ ∑ x : A B type
Σ-form Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑏 : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ b : B [ a / x ]
Γ ⊢ ( 𝑎 , 𝑏 ) : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ ( a , b ) : ∑ x : A B
Σ-intro
Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑝 : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p : ∑ x : A B
Γ ⊢ 𝗉 𝗋 1 ( 𝑝 ) : 𝐴 Γ ⊢ pr 1 ( p ) : A
Σ-elim_1 Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑝 : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p : ∑ x : A B
Γ ⊢ 𝗉 𝗋 2 ( 𝑝 ) : 𝐵 [ 𝗉 𝗋 1 ( 𝑝 ) / 𝑥 ] Γ ⊢ pr 2 ( p ) : B [ pr 1 ( p ) / x ]
Σ-elim_2
Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑏 : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ b : B [ a / x ]
Γ ⊢ 𝗉 𝗋 1 ( ( 𝑎 , 𝑏 ) ) ≡ 𝑎 : 𝐴 Γ ⊢ pr 1 ( ( a , b ) ) ≡ a : A
Σ-β_1 Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑏 : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ b : B [ a / x ]
Γ ⊢ 𝗉 𝗋 2 ( ( 𝑎 , 𝑏 ) ) ≡ 𝑏 : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ pr 2 ( ( a , b ) ) ≡ b : B [ a / x ]
Σ-β_2 Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑝 : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p : ∑ x : A B
Γ ⊢ 𝑝 ≡ ( 𝗉 𝗋 1 ( 𝑝 ) , 𝗉 𝗋 2 ( 𝑝 ) ) : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p ≡ ( pr 1 ( p ) , pr 2 ( p ) ) : ∑ x : A B
Σ-η
The named term congruence rules, with every direct presupposition restored, are
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑎 ′ : 𝐴 Γ ⊢ a ′ : A Γ ⊢ 𝑎 ≡ 𝑎 ′ : 𝐴 Γ ⊢ a ≡ a ′ : A Γ ⊢ 𝑏 : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ b : B [ a / x ] Γ ⊢ 𝑏 ′ : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ b ′ : B [ a / x ] Γ ⊢ 𝑏 ≡ 𝑏 ′ : 𝐵 [ 𝑎 / 𝑥 ] Γ ⊢ b ≡ b ′ : B [ a / x ]
Γ ⊢ ( 𝑎 , 𝑏 ) ≡ ( 𝑎 ′ , 𝑏 ′ ) : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ ( a , b ) ≡ ( a ′ , b ′ ) : ∑ x : A B
pair-eq Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑝 : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p : ∑ x : A B Γ ⊢ 𝑝 ′ : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p ′ : ∑ x : A B Γ ⊢ 𝑝 ≡ 𝑝 ′ : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p ≡ p ′ : ∑ x : A B
Γ ⊢ 𝗉 𝗋 1 ( 𝑝 ) ≡ 𝗉 𝗋 1 ( 𝑝 ′ ) : 𝐴 Γ ⊢ pr 1 ( p ) ≡ pr 1 ( p ′ ) : A
1-eq
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑝 : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p : ∑ x : A B Γ ⊢ 𝑝 ′ : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p ′ : ∑ x : A B Γ ⊢ 𝑝 ≡ 𝑝 ′ : ∑ 𝑥 : 𝐴 𝐵 Γ ⊢ p ≡ p ′ : ∑ x : A B
Γ ⊢ 𝗉 𝗋 2 ( 𝑝 ) ≡ 𝗉 𝗋 2 ( 𝑝 ′ ) : 𝐵 [ 𝗉 𝗋 1 ( 𝑝 ) / 𝑥 ] Γ ⊢ pr 2 ( p ) ≡ pr 2 ( p ′ ) : B [ pr 1 ( p ) / x ]
2-eq
Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝟏 𝗍 𝗒 𝗉 𝖾 Γ ⊢ 1 type
-form Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ ⋆ : 𝟏 Γ ⊢ ⋆ : 1
-intro Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝑢 : 𝟏 Γ ⊢ u : 1
Γ ⊢ 𝑢 ≡ ⋆ : 𝟏 Γ ⊢ u ≡ ⋆ : 1
-η
Empty type, Booleans, and coproducts
Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝟎 𝗍 𝗒 𝗉 𝖾 Γ ⊢ 0 type
-form Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑧 : 𝟎 ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , z : 0 ⊢ C type Γ ⊢ 𝑣 : 𝟎 Γ ⊢ v : 0
Γ ⊢ 𝗂 𝗇 𝖽 𝟎 ( 𝑧 . 𝐶 ; 𝑣 ) : 𝐶 [ 𝑣 / 𝑧 ] Γ ⊢ ind 0 ( z . C ; v ) : C [ v / z ]
-elim
Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝟐 𝗍 𝗒 𝗉 𝖾 Γ ⊢ 2 type
-form Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝗍 𝗍 : 𝟐 Γ ⊢ tt : 2
-intro_1 Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝖿 𝖿 : 𝟐 Γ ⊢ ff : 2
-intro_2
Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑧 : 𝟐 ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , z : 2 ⊢ C type Γ ⊢ 𝑐 𝑡 : 𝐶 [ 𝗍 𝗍 / 𝑧 ] Γ ⊢ c t : C [ tt / z ] Γ ⊢ 𝑐 𝑓 : 𝐶 [ 𝖿 𝖿 / 𝑧 ] Γ ⊢ c f : C [ ff / z ] Γ ⊢ 𝑏 : 𝟐 Γ ⊢ b : 2
Γ ⊢ 𝗂 𝗇 𝖽 𝟐 ( 𝑧 . 𝐶 ; 𝑐 𝑡 , 𝑐 𝑓 ; 𝑏 ) : 𝐶 [ 𝑏 / 𝑧 ] Γ ⊢ ind 2 ( z . C ; c t , c f ; b ) : C [ b / z ]
-elim Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑧 : 𝟐 ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , z : 2 ⊢ C type Γ ⊢ 𝑐 𝑡 : 𝐶 [ 𝗍 𝗍 / 𝑧 ] Γ ⊢ c t : C [ tt / z ] Γ ⊢ 𝑐 𝑓 : 𝐶 [ 𝖿 𝖿 / 𝑧 ] Γ ⊢ c f : C [ ff / z ]
Γ ⊢ 𝗂 𝗇 𝖽 𝟐 ( 𝑧 . 𝐶 ; 𝑐 𝑡 , 𝑐 𝑓 ; 𝗍 𝗍 ) ≡ 𝑐 𝑡 : 𝐶 [ 𝗍 𝗍 / 𝑧 ] Γ ⊢ ind 2 ( z . C ; c t , c f ; tt ) ≡ c t : C [ tt / z ]
-comp_1 Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑧 : 𝟐 ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , z : 2 ⊢ C type Γ ⊢ 𝑐 𝑡 : 𝐶 [ 𝗍 𝗍 / 𝑧 ] Γ ⊢ c t : C [ tt / z ] Γ ⊢ 𝑐 𝑓 : 𝐶 [ 𝖿 𝖿 / 𝑧 ] Γ ⊢ c f : C [ ff / z ]
Γ ⊢ 𝗂 𝗇 𝖽 𝟐 ( 𝑧 . 𝐶 ; 𝑐 𝑡 , 𝑐 𝑓 ; 𝖿 𝖿 ) ≡ 𝑐 𝑓 : 𝐶 [ 𝖿 𝖿 / 𝑧 ] Γ ⊢ ind 2 ( z . C ; c t , c f ; ff ) ≡ c f : C [ ff / z ]
-comp_2
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ B type
Γ ⊢ 𝐴 + 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A + B type
+-form Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ B type Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A
Γ ⊢ 𝗂 𝗇 𝗅 ( 𝑎 ) : 𝐴 + 𝐵 Γ ⊢ inl ( a ) : A + B
+-intro_1 Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ B type Γ ⊢ 𝑏 : 𝐵 Γ ⊢ b : B
Γ ⊢ 𝗂 𝗇 𝗋 ( 𝑏 ) : 𝐴 + 𝐵 Γ ⊢ inr ( b ) : A + B
+-intro_2
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ B type Γ , 𝑧 : 𝐴 + 𝐵 ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , z : A + B ⊢ C type Γ ⊢ 𝑓 : ∏ 𝑥 : 𝐴 𝐶 [ 𝗂 𝗇 𝗅 ( 𝑥 ) / 𝑧 ] Γ ⊢ f : ∏ x : A C [ inl ( x ) / z ] Γ ⊢ 𝑔 : ∏ 𝑦 : 𝐵 𝐶 [ 𝗂 𝗇 𝗋 ( 𝑦 ) / 𝑧 ] Γ ⊢ g : ∏ y : B C [ inr ( y ) / z ] Γ ⊢ 𝑠 : 𝐴 + 𝐵 Γ ⊢ s : A + B
Γ ⊢ 𝗂 𝗇 𝖽 + ( 𝑧 . 𝐶 ; 𝑓 , 𝑔 ; 𝑠 ) : 𝐶 [ 𝑠 / 𝑧 ] Γ ⊢ ind + ( z . C ; f , g ; s ) : C [ s / z ]
+-elim
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ B type Γ , 𝑧 : 𝐴 + 𝐵 ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , z : A + B ⊢ C type Γ ⊢ 𝑓 : ∏ 𝑥 : 𝐴 𝐶 [ 𝗂 𝗇 𝗅 ( 𝑥 ) / 𝑧 ] Γ ⊢ f : ∏ x : A C [ inl ( x ) / z ] Γ ⊢ 𝑔 : ∏ 𝑦 : 𝐵 𝐶 [ 𝗂 𝗇 𝗋 ( 𝑦 ) / 𝑧 ] Γ ⊢ g : ∏ y : B C [ inr ( y ) / z ] Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A
Γ ⊢ 𝗂 𝗇 𝖽 + ( 𝑧 . 𝐶 ; 𝑓 , 𝑔 ; 𝗂 𝗇 𝗅 ( 𝑎 ) ) ≡ 𝑓 𝑎 : 𝐶 [ 𝗂 𝗇 𝗅 ( 𝑎 ) / 𝑧 ] Γ ⊢ ind + ( z . C ; f , g ; inl ( a ) ) ≡ f a : C [ inl ( a ) / z ]
+-comp_1 Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ B type Γ , 𝑧 : 𝐴 + 𝐵 ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , z : A + B ⊢ C type Γ ⊢ 𝑓 : ∏ 𝑥 : 𝐴 𝐶 [ 𝗂 𝗇 𝗅 ( 𝑥 ) / 𝑧 ] Γ ⊢ f : ∏ x : A C [ inl ( x ) / z ] Γ ⊢ 𝑔 : ∏ 𝑦 : 𝐵 𝐶 [ 𝗂 𝗇 𝗋 ( 𝑦 ) / 𝑧 ] Γ ⊢ g : ∏ y : B C [ inr ( y ) / z ] Γ ⊢ 𝑏 : 𝐵 Γ ⊢ b : B
Γ ⊢ 𝗂 𝗇 𝖽 + ( 𝑧 . 𝐶 ; 𝑓 , 𝑔 ; 𝗂 𝗇 𝗋 ( 𝑏 ) ) ≡ 𝑔 𝑏 : 𝐶 [ 𝗂 𝗇 𝗋 ( 𝑏 ) / 𝑧 ] Γ ⊢ ind + ( z . C ; f , g ; inr ( b ) ) ≡ g b : C [ inr ( b ) / z ]
+-comp_2
Natural numbers and W-types
Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ ℕ 𝗍 𝗒 𝗉 𝖾 Γ ⊢ N type
-form Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝟢 : ℕ Γ ⊢ 0 : N
-intro_1 Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝑛 : ℕ Γ ⊢ n : N
Γ ⊢ 𝗌 𝗎 𝖼 ( 𝑛 ) : ℕ Γ ⊢ suc ( n ) : N
-intro_2
Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑛 : ℕ ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , n : N ⊢ C type Γ ⊢ 𝑐 0 : 𝐶 [ 𝟢 / 𝑛 ] Γ ⊢ c 0 : C [ 0 / n ] Γ ⊢ 𝑐 𝑠 : ∏ 𝑘 : ℕ ( 𝐶 [ 𝑘 / 𝑛 ] → 𝐶 [ 𝗌 𝗎 𝖼 ( 𝑘 ) / 𝑛 ] ) Γ ⊢ c s : ∏ k : N ( C [ k / n ] → C [ suc ( k ) / n ] ) Γ ⊢ 𝑚 : ℕ Γ ⊢ m : N
Γ ⊢ 𝗂 𝗇 𝖽 ℕ ( 𝑛 . 𝐶 ; 𝑐 0 , 𝑐 𝑠 ; 𝑚 ) : 𝐶 [ 𝑚 / 𝑛 ] Γ ⊢ ind N ( n . C ; c 0 , c s ; m ) : C [ m / n ]
-elim
Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑛 : ℕ ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , n : N ⊢ C type Γ ⊢ 𝑐 0 : 𝐶 [ 𝟢 / 𝑛 ] Γ ⊢ c 0 : C [ 0 / n ] Γ ⊢ 𝑐 𝑠 : ∏ 𝑘 : ℕ ( 𝐶 [ 𝑘 / 𝑛 ] → 𝐶 [ 𝗌 𝗎 𝖼 ( 𝑘 ) / 𝑛 ] ) Γ ⊢ c s : ∏ k : N ( C [ k / n ] → C [ suc ( k ) / n ] )
Γ ⊢ 𝗂 𝗇 𝖽 ℕ ( 𝑛 . 𝐶 ; 𝑐 0 , 𝑐 𝑠 ; 𝟢 ) ≡ 𝑐 0 : 𝐶 [ 𝟢 / 𝑛 ] Γ ⊢ ind N ( n . C ; c 0 , c s ; 0 ) ≡ c 0 : C [ 0 / n ]
-comp_1 Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑛 : ℕ ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , n : N ⊢ C type Γ ⊢ 𝑐 0 : 𝐶 [ 𝟢 / 𝑛 ] Γ ⊢ c 0 : C [ 0 / n ] Γ ⊢ 𝑐 𝑠 : ∏ 𝑘 : ℕ ( 𝐶 [ 𝑘 / 𝑛 ] → 𝐶 [ 𝗌 𝗎 𝖼 ( 𝑘 ) / 𝑛 ] ) Γ ⊢ c s : ∏ k : N ( C [ k / n ] → C [ suc ( k ) / n ] ) Γ ⊢ 𝑚 : ℕ Γ ⊢ m : N
Γ ⊢ 𝗂 𝗇 𝖽 ℕ ( 𝑛 . 𝐶 ; 𝑐 0 , 𝑐 𝑠 ; 𝗌 𝗎 𝖼 ( 𝑚 ) ) ≡ 𝑐 𝑠 𝑚 ( 𝗂 𝗇 𝖽 ℕ ( 𝑛 . 𝐶 ; 𝑐 0 , 𝑐 𝑠 ; 𝑚 ) ) : 𝐶 [ 𝗌 𝗎 𝖼 ( 𝑚 ) / 𝑛 ] Γ ⊢ ind N ( n . C ; c 0 , c s ; suc ( m ) ) ≡ c s m ( ind N ( n . C ; c 0 , c s ; m ) ) : C [ suc ( m ) / n ]
-comp_2
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type
Γ ⊢ 𝖶 𝑥 : 𝐴 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ W x : A B type
W-form Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑓 : 𝐵 [ 𝑎 / 𝑥 ] → 𝖶 𝑥 : 𝐴 𝐵 Γ ⊢ f : B [ a / x ] → W x : A B
Γ ⊢ 𝗌 𝗎 𝗉 ( 𝑎 , 𝑓 ) : 𝖶 𝑥 : 𝐴 𝐵 Γ ⊢ sup ( a , f ) : W x : A B
W-intro
For the next two rules abbreviate 𝑊 : = 𝖶 𝑥 : 𝐴 𝐵 , 𝖲 𝗍 𝖾 𝗉 𝐶 : = ∏ 𝑎 : 𝐴 ∏ 𝛼 : 𝐵 [ 𝑎 / 𝑥 ] → 𝑊 ( ( ∏ 𝑦 : 𝐵 [ 𝑎 / 𝑥 ] 𝐶 [ 𝛼 𝑦 / 𝑤 ] ) → 𝐶 [ 𝗌 𝗎 𝗉 ( 𝑎 , 𝛼 ) / 𝑤 ] ) , 𝖤 𝐶 ( ℎ , 𝑡 ) : = 𝗂 𝗇 𝖽 𝖶 ( 𝑤 . 𝐶 ; ℎ , 𝑡 ) . W : = W x : A B , Step C : = ∏ a : A ∏ α : B [ a / x ] → W ( ( ∏ y : B [ a / x ] C [ α y / w ] ) → C [ sup ( a , α ) / w ] ) , E C ( h , t ) : = ind W ( w . C ; h , t ) .
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ , 𝑤 : 𝑊 ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , w : W ⊢ C type Γ ⊢ ℎ : 𝖲 𝗍 𝖾 𝗉 𝐶 Γ ⊢ h : Step C Γ ⊢ 𝑡 : 𝑊 Γ ⊢ t : W
Γ ⊢ 𝖤 𝐶 ( ℎ , 𝑡 ) : 𝐶 [ 𝑡 / 𝑤 ] Γ ⊢ E C ( h , t ) : C [ t / w ]
W-elim
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 ⊢ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ , x : A ⊢ B type Γ , 𝑤 : 𝑊 ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , w : W ⊢ C type Γ ⊢ ℎ : 𝖲 𝗍 𝖾 𝗉 𝐶 Γ ⊢ h : Step C Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑓 : 𝐵 [ 𝑎 / 𝑥 ] → 𝑊 Γ ⊢ f : B [ a / x ] → W
Γ ⊢ 𝖤 𝐶 ( ℎ , 𝗌 𝗎 𝗉 ( 𝑎 , 𝑓 ) ) ≡ ℎ 𝑎 𝑓 ( 𝜆 𝑦 . 𝖤 𝐶 ( ℎ , 𝑓 𝑦 ) ) : 𝐶 [ 𝗌 𝗎 𝗉 ( 𝑎 , 𝑓 ) / 𝑤 ] Γ ⊢ E C ( h , sup ( a , f ) ) ≡ h a f ( λ y . E C ( h , f y ) ) : C [ sup ( a , f ) / w ]
W-comp
The extensional source card used for representation
The separate extensional source calculus in chapter 28 restores every direct presupposition of equality reflection:
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑏 : 𝐴 Γ ⊢ b : A Γ ⊢ 𝑝 : 𝖨 𝖽 𝐴 ( 𝑎 , 𝑏 ) Γ ⊢ p : Id A ( a , b )
Γ ⊢ 𝑎 ≡ 𝑏 : 𝐴 Γ ⊢ a ≡ b : A
Eq-reflect
Russell universes
Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ U 𝑖 𝗍 𝗒 𝗉 𝖾 Γ ⊢ U i type
U-Form Γ 𝖼 𝗍 𝗑 Γ ctx 𝑗 < 𝑖 j < i
Γ ⊢ U 𝑗 : U 𝑖 Γ ⊢ U j : U i
U-Hier Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i
Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type
U-El Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ ⊢ 𝐵 : U 𝑖 Γ ⊢ B : U i Γ ⊢ 𝐴 ≡ 𝐵 : U 𝑖 Γ ⊢ A ≡ B : U i
Γ ⊢ 𝐴 ≡ 𝐵 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A ≡ B type
U-El-Eq
Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝐴 𝖼 𝗍 𝗑 Γ , x : A ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ , 𝑥 : 𝐴 ⊢ 𝐵 : U 𝑖 Γ , x : A ⊢ B : U i
Γ ⊢ ∏ 𝑥 : 𝐴 𝐵 : U 𝑖 Γ ⊢ ∏ x : A B : U i
U-Pi Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝐴 𝖼 𝗍 𝗑 Γ , x : A ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ , 𝑥 : 𝐴 ⊢ 𝐵 : U 𝑖 Γ , x : A ⊢ B : U i
Γ ⊢ ∑ 𝑥 : 𝐴 𝐵 : U 𝑖 Γ ⊢ ∑ x : A B : U i
U-Sig Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝐴 𝖼 𝗍 𝗑 Γ , x : A ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ , 𝑥 : 𝐴 ⊢ 𝐵 : U 𝑖 Γ , x : A ⊢ B : U i
Γ ⊢ 𝖶 𝑥 : 𝐴 𝐵 : U 𝑖 Γ ⊢ W x : A B : U i
U-W
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ ⊢ 𝐵 : U 𝑖 Γ ⊢ B : U i
Γ ⊢ 𝐴 + 𝐵 : U 𝑖 Γ ⊢ A + B : U i
U-Sum Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝟎 : U 𝑖 Γ ⊢ 0 : U i
U-Void Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝟏 : U 𝑖 Γ ⊢ 1 : U i
U-Unit Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝟐 : U 𝑖 Γ ⊢ 2 : U i
U-Bool Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ ℕ : U 𝑖 Γ ⊢ N : U i
U-Nat
The optional cumulative-membership delta used by section 74.4 is
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i 𝑖 ≤ 𝑗 i ≤ j
Γ ⊢ 𝐴 : U 𝑗 Γ ⊢ A : U j
U-Cumul
The optional strict lifting delta of definition 29.10 is
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 𝐴 : U 𝑖 + 1 Γ ⊢ Lift i A : U i + 1
Lift-U Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 𝐴 ≡ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ Lift i A ≡ A type
Lift-El Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 ≡ 𝐴 ′ : U 𝑖 Γ ⊢ A ≡ A ′ : U i
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 𝐴 ≡ 𝖫 𝗂 𝖿 𝗍 𝑖 𝐴 ′ : U 𝑖 + 1 Γ ⊢ Lift i A ≡ Lift i A ′ : U i + 1
Lift-Cong
Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝐴 𝖼 𝗍 𝗑 Γ , x : A ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ , 𝑥 : 𝐴 ⊢ 𝐵 : U 𝑖 Γ , x : A ⊢ B : U i
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 ( ∏ 𝑥 : 𝐴 𝐵 ) ≡ ∏ 𝑥 : 𝖫 𝗂 𝖿 𝗍 𝑖 𝐴 𝖫 𝗂 𝖿 𝗍 𝑖 𝐵 : U 𝑖 + 1 Γ ⊢ Lift i ( ∏ x : A B ) ≡ ∏ x : Lift i A Lift i B : U i + 1
Lift-Pi
Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝐴 𝖼 𝗍 𝗑 Γ , x : A ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ , 𝑥 : 𝐴 ⊢ 𝐵 : U 𝑖 Γ , x : A ⊢ B : U i
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 ( ∑ 𝑥 : 𝐴 𝐵 ) ≡ ∑ 𝑥 : 𝖫 𝗂 𝖿 𝗍 𝑖 𝐴 𝖫 𝗂 𝖿 𝗍 𝑖 𝐵 : U 𝑖 + 1 Γ ⊢ Lift i ( ∑ x : A B ) ≡ ∑ x : Lift i A Lift i B : U i + 1
Lift-Sig Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝐴 𝖼 𝗍 𝗑 Γ , x : A ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ , 𝑥 : 𝐴 ⊢ 𝐵 : U 𝑖 Γ , x : A ⊢ B : U i
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 ( 𝖶 𝑥 : 𝐴 𝐵 ) ≡ 𝖶 𝑥 : 𝖫 𝗂 𝖿 𝗍 𝑖 𝐴 𝖫 𝗂 𝖿 𝗍 𝑖 𝐵 : U 𝑖 + 1 Γ ⊢ Lift i ( W x : A B ) ≡ W x : Lift i A Lift i B : U i + 1
Lift-W
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ ⊢ 𝐵 : U 𝑖 Γ ⊢ B : U i
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 ( 𝐴 + 𝐵 ) ≡ 𝖫 𝗂 𝖿 𝗍 𝑖 𝐴 + 𝖫 𝗂 𝖿 𝗍 𝑖 𝐵 : U 𝑖 + 1 Γ ⊢ Lift i ( A + B ) ≡ Lift i A + Lift i B : U i + 1
Lift-Sum
Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 𝟎 ≡ 𝟎 : U 𝑖 + 1 Γ ⊢ Lift i 0 ≡ 0 : U i + 1
Lift-Void Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 𝟏 ≡ 𝟏 : U 𝑖 + 1 Γ ⊢ Lift i 1 ≡ 1 : U i + 1
Lift-Unit Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 𝟐 ≡ 𝟐 : U 𝑖 + 1 Γ ⊢ Lift i 2 ≡ 2 : U i + 1
Lift-Bool Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 ℕ ≡ ℕ : U 𝑖 + 1 Γ ⊢ Lift i N ≡ N : U i + 1
Lift-Nat
Γ 𝖼 𝗍 𝗑 Γ ctx 𝑗 < 𝑖 j < i
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 U 𝑗 ≡ U 𝑗 : U 𝑖 + 1 Γ ⊢ Lift i U j ≡ U j : U i + 1
Lift-Hier
In each dependent code, Lift-El and context conversion identify the lifted binder with the original one.
Tarski universes
The alternative presentation of definition 75.1 replaces U-El by decoding:
Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ U 𝑖 𝗍 𝗒 𝗉 𝖾 Γ ⊢ U i type
TU-Form Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i
Γ ⊢ 𝖤 𝗅 ( 𝑎 ) 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( a ) type
TU-El Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ ⊢ 𝑎 ′ : U 𝑖 Γ ⊢ a ′ : U i Γ ⊢ 𝑎 ≡ 𝑎 ′ : U 𝑖 Γ ⊢ a ≡ a ′ : U i
Γ ⊢ 𝖤 𝗅 ( 𝑎 ) ≡ 𝖤 𝗅 ( 𝑎 ′ ) 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( a ) ≡ El ( a ′ ) type
TU-El-Eq
Γ 𝖼 𝗍 𝗑 Γ ctx 𝑗 < 𝑖 j < i
Γ ⊢ ⌜ U 𝑗 ⌝ : U 𝑖 Γ ⊢ ⌜ U j ⌝ : U i
TU-Hier Γ 𝖼 𝗍 𝗑 Γ ctx 𝑗 < 𝑖 j < i
Γ ⊢ 𝖤 𝗅 ( ⌜ U 𝑗 ⌝ ) ≡ U 𝑗 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( ⌜ U j ⌝ ) ≡ U j type
TU-Hier-El
Its dependent codes and their strict decodings are
Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖼 𝗍 𝗑 Γ , x : El ( a ) ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) ⊢ 𝑏 : U 𝑖 Γ , x : El ( a ) ⊢ b : U i
Γ ⊢ ⌜ Π ⌝ ( 𝑎 , 𝑥 . 𝑏 ) : U 𝑖 Γ ⊢ ⌜ Π ⌝ ( a , x . b ) : U i
TU-Pi Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖼 𝗍 𝗑 Γ , x : El ( a ) ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) ⊢ 𝑏 : U 𝑖 Γ , x : El ( a ) ⊢ b : U i
Γ ⊢ ⌜ Σ ⌝ ( 𝑎 , 𝑥 . 𝑏 ) : U 𝑖 Γ ⊢ ⌜ Σ ⌝ ( a , x . b ) : U i
TU-Sig Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖼 𝗍 𝗑 Γ , x : El ( a ) ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) ⊢ 𝑏 : U 𝑖 Γ , x : El ( a ) ⊢ b : U i
Γ ⊢ ⌜ 𝖶 ⌝ ( 𝑎 , 𝑥 . 𝑏 ) : U 𝑖 Γ ⊢ ⌜ W ⌝ ( a , x . b ) : U i
TU-W
Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖼 𝗍 𝗑 Γ , x : El ( a ) ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) ⊢ 𝑏 : U 𝑖 Γ , x : El ( a ) ⊢ b : U i
Γ ⊢ 𝖤 𝗅 ( ⌜ Π ⌝ ( 𝑎 , 𝑥 . 𝑏 ) ) ≡ ∏ 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖤 𝗅 ( 𝑏 ) 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( ⌜ Π ⌝ ( a , x . b ) ) ≡ ∏ x : El ( a ) El ( b ) type
TU-Pi-El Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖼 𝗍 𝗑 Γ , x : El ( a ) ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) ⊢ 𝑏 : U 𝑖 Γ , x : El ( a ) ⊢ b : U i
Γ ⊢ 𝖤 𝗅 ( ⌜ Σ ⌝ ( 𝑎 , 𝑥 . 𝑏 ) ) ≡ ∑ 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖤 𝗅 ( 𝑏 ) 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( ⌜ Σ ⌝ ( a , x . b ) ) ≡ ∑ x : El ( a ) El ( b ) type
TU-Sig-El Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖼 𝗍 𝗑 Γ , x : El ( a ) ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) ⊢ 𝑏 : U 𝑖 Γ , x : El ( a ) ⊢ b : U i
Γ ⊢ 𝖤 𝗅 ( ⌜ 𝖶 ⌝ ( 𝑎 , 𝑥 . 𝑏 ) ) ≡ 𝖶 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖤 𝗅 ( 𝑏 ) 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( ⌜ W ⌝ ( a , x . b ) ) ≡ W x : El ( a ) El ( b ) type
TU-W-El
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ ⊢ 𝑏 : U 𝑖 Γ ⊢ b : U i
Γ ⊢ ⌜ + ⌝ ( 𝑎 , 𝑏 ) : U 𝑖 Γ ⊢ ⌜ + ⌝ ( a , b ) : U i
TU-Sum Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ ⊢ 𝑏 : U 𝑖 Γ ⊢ b : U i
Γ ⊢ 𝖤 𝗅 ( ⌜ + ⌝ ( 𝑎 , 𝑏 ) ) ≡ 𝖤 𝗅 ( 𝑎 ) + 𝖤 𝗅 ( 𝑏 ) 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( ⌜ + ⌝ ( a , b ) ) ≡ El ( a ) + El ( b ) type
TU-Sum-El
Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ ⌜ 𝟎 ⌝ : U 𝑖 Γ ⊢ ⌜ 0 ⌝ : U i
TU-Void Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ ⌜ 𝟏 ⌝ : U 𝑖 Γ ⊢ ⌜ 1 ⌝ : U i
TU-Unit Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ ⌜ 𝟐 ⌝ : U 𝑖 Γ ⊢ ⌜ 2 ⌝ : U i
TU-Bool Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ ⌜ ℕ ⌝ : U 𝑖 Γ ⊢ ⌜ N ⌝ : U i
TU-Nat
Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝖤 𝗅 ( ⌜ 𝟎 ⌝ ) ≡ 𝟎 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( ⌜ 0 ⌝ ) ≡ 0 type
TU-Void-El Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝖤 𝗅 ( ⌜ 𝟏 ⌝ ) ≡ 𝟏 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( ⌜ 1 ⌝ ) ≡ 1 type
TU-Unit-El Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝖤 𝗅 ( ⌜ 𝟐 ⌝ ) ≡ 𝟐 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( ⌜ 2 ⌝ ) ≡ 2 type
TU-Bool-El Γ 𝖼 𝗍 𝗑 Γ ctx
Γ ⊢ 𝖤 𝗅 ( ⌜ ℕ ⌝ ) ≡ ℕ 𝗍 𝗒 𝗉 𝖾 Γ ⊢ El ( ⌜ N ⌝ ) ≡ N type
TU-Nat-El
The representative congruence scheme is
Γ 𝖼 𝗍 𝗑 Γ ctx Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) 𝖼 𝗍 𝗑 Γ , x : El ( a ) ctx Γ ⊢ 𝑎 : U 𝑖 Γ ⊢ a : U i Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) ⊢ 𝑏 : U 𝑖 Γ , x : El ( a ) ⊢ b : U i Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) ⊢ 𝑏 ′ : U 𝑖 Γ , x : El ( a ) ⊢ b ′ : U i Γ , 𝑥 : 𝖤 𝗅 ( 𝑎 ) ⊢ 𝑏 ≡ 𝑏 ′ : U 𝑖 Γ , x : El ( a ) ⊢ b ≡ b ′ : U i
Γ ⊢ ⌜ Π ⌝ ( 𝑎 , 𝑥 . 𝑏 ) ≡ ⌜ Π ⌝ ( 𝑎 , 𝑥 . 𝑏 ′ ) : U 𝑖 Γ ⊢ ⌜ Π ⌝ ( a , x . b ) ≡ ⌜ Π ⌝ ( a , x . b ′ ) : U i
TU-Cong
It applies to every classified argument of every code constructor, with TU-El-Eq and context conversion when a dependent domain changes.
The Hurkens interface
The separate 𝖴 − U − signature of definition 76.1 contains 𝑈 1 , 𝖤 𝗅 1 , Π 1 , Π 2 , 𝜆 1 , ⋅ 1 , 𝜆 2 , ⋅ 2 , 𝑢 0 , 𝖤 𝗅 0 , Π 0 , Π 0 1 , 𝜆 0 , ⋅ 0 , 𝜆 0 1 , ⋅ 0 1 . U 1 , El 1 , Π 1 , Π 2 , λ 1 , ⋅ 1 , λ 2 , ⋅ 2 , u 0 , El 0 , Π 0 , Π 01 , λ 0 , ⋅ 0 , λ 01 , ⋅ 01 . Here 𝑈 1 U 1 is a type, 𝖤 𝗅 1 ( 𝐴 ) El 1 ( A ) is a type for 𝐴 : 𝑈 1 A : U 1 , 𝑢 0 : 𝑈 1 u 0 : U 1 , 𝑈 0 : = 𝖤 𝗅 1 ( 𝑢 0 ) U 0 : = El 1 ( u 0 ) , and 𝖤 𝗅 0 ( 𝑎 ) El 0 ( a ) is a type for 𝑎 : 𝑈 0 a : U 0 . The four code formers are Π 1 : ( 𝐴 : 𝑈 1 ) → ( 𝖤 𝗅 1 ( 𝐴 ) → 𝑈 1 ) → 𝑈 1 , Π 2 : ( 𝑈 1 → 𝑈 1 ) → 𝑈 1 , Π 0 : ( 𝑎 : 𝑈 0 ) → ( 𝖤 𝗅 0 ( 𝑎 ) → 𝑈 0 ) → 𝑈 0 , Π 0 1 : ( 𝐴 : 𝑈 1 ) → ( 𝖤 𝗅 1 ( 𝐴 ) → 𝑈 0 ) → 𝑈 0 . Π 1 : ( A : U 1 ) → ( El 1 ( A ) → U 1 ) → U 1 , Π 2 : ( U 1 → U 1 ) → U 1 , Π 0 : ( a : U 0 ) → ( El 0 ( a ) → U 0 ) → U 0 , Π 01 : ( A : U 1 ) → ( El 1 ( A ) → U 0 ) → U 0 . The operations have the full signatures 𝜆 1 : ( ∏ 𝑥 : 𝖤 𝗅 1 ( 𝐴 ) 𝖤 𝗅 1 ( 𝐵 𝑥 ) ) → 𝖤 𝗅 1 ( Π 1 ( 𝐴 , 𝐵 ) ) , ⋅ 1 : 𝖤 𝗅 1 ( Π 1 ( 𝐴 , 𝐵 ) ) → ∏ 𝑥 : 𝖤 𝗅 1 ( 𝐴 ) 𝖤 𝗅 1 ( 𝐵 𝑥 ) , 𝜆 2 : ( ∏ 𝐴 : 𝑈 1 𝖤 𝗅 1 ( 𝐹 𝐴 ) ) → 𝖤 𝗅 1 ( Π 2 ( 𝐹 ) ) , ⋅ 2 : 𝖤 𝗅 1 ( Π 2 ( 𝐹 ) ) → ∏ 𝐴 : 𝑈 1 𝖤 𝗅 1 ( 𝐹 𝐴 ) , 𝜆 0 : ( ∏ 𝑥 : 𝖤 𝗅 0 ( 𝑎 ) 𝖤 𝗅 0 ( 𝑏 𝑥 ) ) → 𝖤 𝗅 0 ( Π 0 ( 𝑎 , 𝑏 ) ) , ⋅ 0 : 𝖤 𝗅 0 ( Π 0 ( 𝑎 , 𝑏 ) ) → ∏ 𝑥 : 𝖤 𝗅 0 ( 𝑎 ) 𝖤 𝗅 0 ( 𝑏 𝑥 ) , 𝜆 0 1 : ( ∏ 𝑥 : 𝖤 𝗅 1 ( 𝐴 ) 𝖤 𝗅 0 ( 𝑏 𝑥 ) ) → 𝖤 𝗅 0 ( Π 0 1 ( 𝐴 , 𝑏 ) ) , ⋅ 0 1 : 𝖤 𝗅 0 ( Π 0 1 ( 𝐴 , 𝑏 ) ) → ∏ 𝑥 : 𝖤 𝗅 1 ( 𝐴 ) 𝖤 𝗅 0 ( 𝑏 𝑥 ) . λ 1 : ( ∏ x : El 1 ( A ) El 1 ( B x ) ) → El 1 ( Π 1 ( A , B ) ) , ⋅ 1 : El 1 ( Π 1 ( A , B ) ) → ∏ x : El 1 ( A ) El 1 ( B x ) , λ 2 : ( ∏ A : U 1 El 1 ( F A ) ) → El 1 ( Π 2 ( F ) ) , ⋅ 2 : El 1 ( Π 2 ( F ) ) → ∏ A : U 1 El 1 ( F A ) , λ 0 : ( ∏ x : El 0 ( a ) El 0 ( b x ) ) → El 0 ( Π 0 ( a , b ) ) , ⋅ 0 : El 0 ( Π 0 ( a , b ) ) → ∏ x : El 0 ( a ) El 0 ( b x ) , λ 01 : ( ∏ x : El 1 ( A ) El 0 ( b x ) ) → El 0 ( Π 01 ( A , b ) ) , ⋅ 01 : El 0 ( Π 01 ( A , b ) ) → ∏ x : El 1 ( A ) El 0 ( b x ) . The chapter’s strengthened judgmental presentation supplies exactly ( 𝜆 1 𝑥 . 𝑡 ) ⋅ 1 𝑎 ≡ 𝑡 [ 𝑎 / 𝑥 ] , ( 𝜆 2 𝐴 . 𝑡 ) ⋅ 2 𝐵 ≡ 𝑡 [ 𝐵 / 𝐴 ] . ( λ 1 x . t ) ⋅ 1 a ≡ t [ a / x ] , ( λ 2 A . t ) ⋅ 2 B ≡ t [ B / A ] . Spiwack’s source instead states corresponding equality axioms and inserts transports. Neither 𝜆 0 / ⋅ 0 λ 0 / ⋅ 0 nor 𝜆 0 1 / ⋅ 0 1 λ 01 / ⋅ 01 has a beta equation. This card is not cumulative with either universe presentation above.
Identity types
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑏 : 𝐴 Γ ⊢ b : A
Γ ⊢ 𝖨 𝖽 𝐴 ( 𝑎 , 𝑏 ) 𝗍 𝗒 𝗉 𝖾 Γ ⊢ Id A ( a , b ) type
Id-form Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑏 : 𝐴 Γ ⊢ b : A
Γ ⊢ 𝖨 𝖽 𝐴 ( 𝑎 , 𝑏 ) : U 𝑖 Γ ⊢ Id A ( a , b ) : U i
Id-form- Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A
Γ ⊢ 𝗋 𝖾 𝖿 𝗅 𝑎 : 𝖨 𝖽 𝐴 ( 𝑎 , 𝑎 ) Γ ⊢ refl a : Id A ( a , a )
Id-intro
When the optional strict lifting package and identity types are both present, add
Γ 𝖼 𝗍 𝗑 Γ ctx Γ ⊢ 𝐴 : U 𝑖 Γ ⊢ A : U i Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑏 : 𝐴 Γ ⊢ b : A
Γ ⊢ 𝖫 𝗂 𝖿 𝗍 𝑖 ( 𝖨 𝖽 𝐴 ( 𝑎 , 𝑏 ) ) ≡ 𝖨 𝖽 𝖫 𝗂 𝖿 𝗍 𝑖 𝐴 ( 𝑎 , 𝑏 ) : U 𝑖 + 1 Γ ⊢ Lift i ( Id A ( a , b ) ) ≡ Id Lift i A ( a , b ) : U i + 1
Lift-Id
Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 , 𝑦 : 𝐴 , 𝑝 : 𝖨 𝖽 𝐴 ( 𝑥 , 𝑦 ) ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , x : A , y : A , p : Id A ( x , y ) ⊢ C type Γ , 𝑧 : 𝐴 ⊢ 𝑐 : 𝐶 [ 𝑧 / 𝑥 , 𝑧 / 𝑦 , 𝗋 𝖾 𝖿 𝗅 𝑧 / 𝑝 ] Γ , z : A ⊢ c : C [ z / x , z / y , refl z / p ] Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ ⊢ 𝑏 : 𝐴 Γ ⊢ b : A Γ ⊢ 𝑞 : 𝖨 𝖽 𝐴 ( 𝑎 , 𝑏 ) Γ ⊢ q : Id A ( a , b )
Γ ⊢ 𝖩 ( 𝑥 . 𝑦 . 𝑝 . 𝐶 ; 𝑧 . 𝑐 ; 𝑞 ) : 𝐶 [ 𝑎 / 𝑥 , 𝑏 / 𝑦 , 𝑞 / 𝑝 ] Γ ⊢ J ( x . y . p . C ; z . c ; q ) : C [ a / x , b / y , q / p ]
Id-elim
Γ ⊢ 𝐴 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A type Γ , 𝑥 : 𝐴 , 𝑦 : 𝐴 , 𝑝 : 𝖨 𝖽 𝐴 ( 𝑥 , 𝑦 ) ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , x : A , y : A , p : Id A ( x , y ) ⊢ C type Γ , 𝑧 : 𝐴 ⊢ 𝑐 : 𝐶 [ 𝑧 / 𝑥 , 𝑧 / 𝑦 , 𝗋 𝖾 𝖿 𝗅 𝑧 / 𝑝 ] Γ , z : A ⊢ c : C [ z / x , z / y , refl z / p ] Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A
Γ ⊢ 𝖩 ( 𝑥 . 𝑦 . 𝑝 . 𝐶 ; 𝑧 . 𝑐 ; 𝗋 𝖾 𝖿 𝗅 𝑎 ) ≡ 𝑐 [ 𝑎 / 𝑧 ] : 𝐶 [ 𝑎 / 𝑥 , 𝑎 / 𝑦 , 𝗋 𝖾 𝖿 𝗅 𝑎 / 𝑝 ] Γ ⊢ J ( x . y . p . C ; z . c ; refl a ) ≡ c [ a / z ] : C [ a / x , a / y , refl a / p ]
Id-comp
The chapter’s congruence instances use
Γ ⊢ 𝐴 ≡ 𝐴 ′ 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A ≡ A ′ type Γ ⊢ 𝑎 ≡ 𝑎 ′ : 𝐴 Γ ⊢ a ≡ a ′ : A Γ ⊢ 𝑏 ≡ 𝑏 ′ : 𝐴 Γ ⊢ b ≡ b ′ : A
Γ ⊢ 𝖨 𝖽 𝐴 ( 𝑎 , 𝑏 ) ≡ 𝖨 𝖽 𝐴 ′ ( 𝑎 ′ , 𝑏 ′ ) 𝗍 𝗒 𝗉 𝖾 Γ ⊢ Id A ( a , b ) ≡ Id A ′ ( a ′ , b ′ ) type
Id-form-eq
and, for Δ : = Γ , 𝑥 : 𝐴 , 𝑦 : 𝐴 , 𝑝 : 𝖨 𝖽 𝐴 ( 𝑥 , 𝑦 ) Δ : = Γ , x : A , y : A , p : Id A ( x , y ) ,
Γ ⊢ 𝐴 ≡ 𝐴 ′ 𝗍 𝗒 𝗉 𝖾 Γ ⊢ A ≡ A ′ type Δ ⊢ 𝐶 ≡ 𝐶 ′ 𝗍 𝗒 𝗉 𝖾 Δ ⊢ C ≡ C ′ type Γ , 𝑧 : 𝐴 ⊢ 𝑐 ≡ 𝑐 ′ : 𝐶 [ 𝑧 / 𝑥 , 𝑧 / 𝑦 , 𝗋 𝖾 𝖿 𝗅 𝑧 / 𝑝 ] Γ , z : A ⊢ c ≡ c ′ : C [ z / x , z / y , refl z / p ] Γ ⊢ 𝑎 ≡ 𝑎 ′ : 𝐴 Γ ⊢ a ≡ a ′ : A Γ ⊢ 𝑏 ≡ 𝑏 ′ : 𝐴 Γ ⊢ b ≡ b ′ : A Γ ⊢ 𝑞 ≡ 𝑞 ′ : 𝖨 𝖽 𝐴 ( 𝑎 , 𝑏 ) Γ ⊢ q ≡ q ′ : Id A ( a , b )
Γ ⊢ 𝖩 ( 𝑥 . 𝑦 . 𝑝 . 𝐶 ; 𝑧 . 𝑐 ; 𝑞 ) ≡ 𝖩 ( 𝑥 . 𝑦 . 𝑝 . 𝐶 ′ ; 𝑧 . 𝑐 ′ ; 𝑞 ′ ) : 𝐶 [ 𝑎 / 𝑥 , 𝑏 / 𝑦 , 𝑞 / 𝑝 ] Γ ⊢ J ( x . y . p . C ; z . c ; q ) ≡ J ( x . y . p . C ′ ; z . c ′ ; q ′ ) : C [ a / x , b / y , q / p ]
Id-elim-eq
Context conversion places the primed data in the displayed contexts.
The based rules derived using Σ Σ -types are
Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ , , 𝑦 : 𝐴 , , 𝑝 : 𝖨 𝖽 𝐴 ( 𝑎 , 𝑦 ) ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , , y : A , , p : Id A ( a , y ) ⊢ C type Γ ⊢ 𝑐 : 𝐶 [ 𝑎 / 𝑦 , 𝗋 𝖾 𝖿 𝗅 𝑎 / 𝑝 ] Γ ⊢ c : C [ a / y , refl a / p ] Γ ⊢ 𝑞 : 𝖨 𝖽 𝐴 ( 𝑎 , 𝑏 ) Γ ⊢ q : Id A ( a , b )
Γ ⊢ 𝖩 ′ ( 𝑦 . 𝑝 . 𝐶 ; 𝑐 ; 𝑞 ) : 𝐶 [ 𝑏 / 𝑦 , 𝑞 / 𝑝 ] Γ ⊢ J ′ ( y . p . C ; c ; q ) : C [ b / y , q / p ]
Id-elim' Γ ⊢ 𝑎 : 𝐴 Γ ⊢ a : A Γ , , 𝑦 : 𝐴 , , 𝑝 : 𝖨 𝖽 𝐴 ( 𝑎 , 𝑦 ) ⊢ 𝐶 𝗍 𝗒 𝗉 𝖾 Γ , , y : A , , p : Id A ( a , y ) ⊢ C type Γ ⊢ 𝑐 : 𝐶 [ 𝑎 / 𝑦 , 𝗋 𝖾 𝖿 𝗅 𝑎 / 𝑝 ] Γ ⊢ c : C [ a / y , refl a / p ]
Γ ⊢ 𝖩 ′ ( 𝑦 . 𝑝 . 𝐶 ; 𝑐 ; 𝗋 𝖾 𝖿 𝗅 𝑎 ) ≡ 𝑐 : 𝐶 [ 𝑎 / 𝑦 , 𝗋 𝖾 𝖿 𝗅 𝑎 / 𝑝 ] Γ ⊢ J ′ ( y . p . C ; c ; refl a ) ≡ c : C [ a / y , refl a / p ]
Id-comp'