35 lines
1.1 KiB
Text
35 lines
1.1 KiB
Text
|
-- Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
|||
|
-- Released under Apache 2.0 license as described in the file LICENSE.
|
|||
|
-- Author: Jeremy Avigad
|
|||
|
|
|||
|
import data.unit data.bool data.nat
|
|||
|
import data.prod data.sum data.sigma
|
|||
|
|
|||
|
using unit bool nat prod sum sigma
|
|||
|
|
|||
|
inductive fibrant (T : Type) : Type :=
|
|||
|
| fibrant_mk : fibrant T
|
|||
|
|
|||
|
namespace fibrant
|
|||
|
|
|||
|
axiom unit_fibrant : fibrant unit
|
|||
|
axiom nat_fibrant : fibrant nat
|
|||
|
axiom bool_fibrant : fibrant bool
|
|||
|
axiom sum_fibrant {A B : Type} (C1 : fibrant A) (C2 : fibrant B) : fibrant (A + B)
|
|||
|
axiom prod_fibrant {A B : Type} (C1 : fibrant A) (C2 : fibrant B) : fibrant (A × B)
|
|||
|
axiom sigma_fibrant {A : Type} {B : A → Type} (C1 : fibrant A) (C2 : Πx : A, fibrant (B x)) :
|
|||
|
fibrant (Σx : A, B x)
|
|||
|
axiom pi_fibrant {A : Type} {B : A → Type} (C1 : fibrant A) (C2 : Πx : A, fibrant (B x)) :
|
|||
|
fibrant (Πx : A, B x)
|
|||
|
|
|||
|
instance unit_fibrant
|
|||
|
instance nat_fibrant
|
|||
|
instance bool_fibrant
|
|||
|
instance sum_fibrant
|
|||
|
instance prod_fibrant
|
|||
|
instance sigma_fibrant
|
|||
|
instance pi_fibrant
|
|||
|
|
|||
|
theorem test_fibrant : fibrant (nat × (nat + nat)) := _
|
|||
|
|
|||
|
end fibrant
|