2014-08-22 03:26:30 +00:00
|
|
|
|
-- 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
|
|
|
|
|
|
2014-09-03 23:00:38 +00:00
|
|
|
|
open unit bool nat prod sum sigma
|
2014-08-22 03:26:30 +00:00
|
|
|
|
|
2014-10-08 01:02:15 +00:00
|
|
|
|
inductive fibrant [class] (T : Type) : Type :=
|
2014-08-22 22:46:10 +00:00
|
|
|
|
fibrant_mk : fibrant T
|
2014-08-22 03:26:30 +00:00
|
|
|
|
|
|
|
|
|
namespace fibrant
|
|
|
|
|
|
|
|
|
|
axiom unit_fibrant : fibrant unit
|
|
|
|
|
axiom nat_fibrant : fibrant nat
|
|
|
|
|
axiom bool_fibrant : fibrant bool
|
2014-11-04 17:37:20 +00:00
|
|
|
|
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)] :
|
2014-08-22 03:26:30 +00:00
|
|
|
|
fibrant (Σx : A, B x)
|
2014-11-04 17:37:20 +00:00
|
|
|
|
axiom pi_fibrant {A : Type} {B : A → Type} [C1 : fibrant A] [C2 : Πx : A, fibrant (B x)] :
|
2014-08-22 03:26:30 +00:00
|
|
|
|
fibrant (Πx : A, B x)
|
|
|
|
|
|
2014-09-19 19:42:22 +00:00
|
|
|
|
instance [persistent] unit_fibrant
|
|
|
|
|
instance [persistent] nat_fibrant
|
|
|
|
|
instance [persistent] bool_fibrant
|
|
|
|
|
instance [persistent] sum_fibrant
|
|
|
|
|
instance [persistent] prod_fibrant
|
|
|
|
|
instance [persistent] sigma_fibrant
|
|
|
|
|
instance [persistent] pi_fibrant
|
2014-08-22 03:26:30 +00:00
|
|
|
|
|
2014-09-03 23:00:38 +00:00
|
|
|
|
end fibrant
|