agda - Equality testing without explicit proof that data constructors are injective -
Is it possible to define a simple syntax notion of equality (like GACC In other words, what is a helpful work for the constellation of the data constructor per constructor Instead of starting, it is possible to take advantage more directly Uses natural numbers in the form of the following example. a (common law again in a few clearly unavailable.) Ulf Norell Includes a mechanism to automatically get a pivotal parallelism for the given datatype. This code is based on Agada's reflection mechanism and the automated expanded lambda to prove the catalysts of the constructors. I recommend taking a look at the code, even if it is not always as easy as it could be Eq ?
Module ek where open import function open import relationship. Binary open import relation. Binary.proptational Akwaliti open import relations. clear data. set where no one ???? Suc: a ???? a ???? a ???? how to eliminate these injection evidence? successful-functional: a ???? {NM} a ???? success N â ?? ¡successful M a ???? N â ?? ¡m suc-injective refl = refl _ÃÆ'à a € ™ ÃƒÆ '  € " ¡Ãƒâ € SA, a · decidable {A = A '}} _ÃÆ'à a € ™ Ã⠀,  ¢ à ¢ _ zero â ???? Suc _ = no (Î »()) suc_ a ???? Zero = no (Î »()) zero Zero = yes refl suc n a ???? Success M N success with N M success. En | | Yes refl = yes refl ... | Nobody ?? ¢ m = any (nå ?? ¢ m) "suc-injective")
suc-injective
congog (Î »{zero} ? Zero Zero Zero Î Î Î Î â â â)))))) < / s> require boilerplate an auxiliary function to copy constructor, and Such functions are somewhat ugly because they need to be total.
Comments
Post a Comment