X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Flib%2Fhints_declaration.ma;h=d04f453f2adad0ffa376932aaf26ccbd42ba15bc;hb=b20562910685165ddcb488a9c651c454e53d3d7f;hp=bcbfed4f3a47d5f01e47296c437b28cc48273f61;hpb=53452958508001e7af3090695b619fe92135fb9e;p=helm.git diff --git a/matita/matita/lib/hints_declaration.ma b/matita/matita/lib/hints_declaration.ma index bcbfed4f3..d04f453f2 100644 --- a/matita/matita/lib/hints_declaration.ma +++ b/matita/matita/lib/hints_declaration.ma @@ -72,22 +72,23 @@ interpretation "hint_decl_CProp1" 'hint_decl a b = (hint_declaration_CProp1 ? a interpretation "hint_decl_CProp0" 'hint_decl a b = (hint_declaration_CProp0 ? a b). interpretation "hint_decl_Type0" 'hint_decl a b = (hint_declaration_Type0 ? a b). -(* Non uniform coercions support -record lock2 (S : Type[2]) (s : S) : Type[3] ≝ { - force2 : Type[2]; - lift2 : force2 +(* Non uniform coercions support +record solution2 (S : Type[2]) (s : S) : Type[3] ≝ { + target2 : Type[2]; + result2 : target2 }. -record lock1 (S : Type[1]) (s : S) : Type[2] ≝ { - force1 : Type[1]; - lift1 : force1 +record solution1 (S : Type[1]) (s : S) : Type[2] ≝ { + target1 : Type[1]; + result1 : target1 }. -coercion zzzlift1 : ∀S:Type[1].∀s:S.∀l:lock1 S s. force1 S s l ≝ lift1 - on s : ? to force1 ???. +coercion nonunifcoerc1 : ∀S:Type[1].∀s:S.∀l:solution1 S s. target1 S s l ≝ result1 + on s : ? to target1 ???. -coercion zzzlift2 : ∀S:Type[2].∀s:S.∀l:lock2 S s. force2 S s l ≝ lift2 - on s : ? to force2 ???. +coercion nonunifcoerc2 : ∀S:Type[2].∀s:S.∀l:solution2 S s. target2 S s l ≝ result2 + on s : ? to target2 ???. +*) (* Example of a non uniform coercion declaration @@ -99,9 +100,8 @@ coercion zzzlift2 : ∀S:Type[2].∀s:S.∀l:lock2 S s. force2 S s l ≝ lift2 unification hint 0 ≔ R : setoid; MR ≟ carr R, - lock ≟ mk_lock1 Type[0] MR setoid R + sol ≟ mk_solution1 Type[0] MR setoid R (* ---------------------------------------- *) ⊢ - setoid ≡ force1 ? MR lock. + setoid ≡ target1 ? MR sol. -*) *) \ No newline at end of file