agda - Equality testing without explicit proof that data constructors are injective -


Is it possible to define a simple syntax notion of equality (like GACC Eq ?

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.

  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")   

a 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.

(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

Comments

Popular posts from this blog

java - ImportError: No module named py4j.java_gateway -

python - Receiving "KeyError" after decoding json result from url -

.net - Creating a new Queue Manager and Queue in Websphere MQ (using C#) -