20 lines
674 B
Text
20 lines
674 B
Text
|
-- Copyright (c) 2014 Jakob von Raumer. All rights reserved.
|
||
|
-- Released under Apache 2.0 license as described in the file LICENSE.
|
||
|
-- Authors: Jakob von Raumer
|
||
|
|
||
|
open truncation
|
||
|
|
||
|
-- Axiomatize the truncation operator as long as we do not have
|
||
|
-- Higher inductive types
|
||
|
|
||
|
axiom truncate (A : Type) (n : trunc_index) : Type
|
||
|
|
||
|
axiom truncate.mk {A : Type} (n : trunc_index) (a : A) : truncate A n
|
||
|
|
||
|
axiom truncate.is_trunc (A : Type) (n : trunc_index) : is_trunc n (truncate A n)
|
||
|
|
||
|
axiom truncate.rec_on {A : Type} {n : trunc_index} {C : truncate A n → Type}
|
||
|
(ta : truncate A n)
|
||
|
[H : Π (ta : truncate A n), is_trunc n (C ta)]
|
||
|
(CC : Π (a : A), C (truncate.mk n a)) : C ta
|