From a78228fa1d53da35b589f8b5f29816270f467af8 Mon Sep 17 00:00:00 2001 From: Claudio Sacerdoti Coen Date: Mon, 27 Aug 2012 14:25:45 +0000 Subject: [PATCH] ... --- matita/matita/lib/extraction.ma | 21 ++++++++++++++++++++- matita/matita/lib/preamble.hs | 6 ++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/matita/matita/lib/extraction.ma b/matita/matita/lib/extraction.ma index aa781cfa7..2af7f4a18 100644 --- a/matita/matita/lib/extraction.ma +++ b/matita/matita/lib/extraction.ma @@ -186,4 +186,23 @@ axiom lt: nat → nat → Prop. (*BUG: elimination principles not extracted *) inductive myvect (A: Type[0]) (b:nat) : nat → Type[0] ≝ myemptyv : myvect A b O - | mycons: ∀n. lt n b → A → myvect A b n → myvect A b (S n). \ No newline at end of file + | mycons: ∀n. lt n b → A → myvect A b n → myvect A b (S n). + +inductive False: Prop ≝ . + +inductive Empty: Type[0] ≝ . + +inductive bool: Type[0] ≝ true: bool | false:bool. + +inductive eq (A:Type[1]) (a:A) : A → Prop ≝ refl: eq A a a. + +(* BUG: requires coercion *) +definition cast_bug1 ≝ + λH:eq Type[0] bool nat. S (match H return λA:Type[0].λ_.A with [ refl ⇒ true ]). + +(* BUG: requires top type *) +definition cast_bug2 ≝ + λb. + match true return λb.match b with [ true ⇒ nat → nat | false ⇒ bool ] with + [ true ⇒ S | false ⇒ false ] + O. \ No newline at end of file diff --git a/matita/matita/lib/preamble.hs b/matita/matita/lib/preamble.hs index 2aea1bb44..abc288aa4 100644 --- a/matita/matita/lib/preamble.hs +++ b/matita/matita/lib/preamble.hs @@ -1,5 +1,7 @@ -{-# LANGUAGE RankNTypes, KindSignatures #-} +{-# LANGUAGE RankNTypes, KindSignatures, GADTs, ScopedTypeVariables #-} module Main where - +import Unsafe.Coerce +import Prelude (error) +import qualified Prelude -- 2.39.2