[Agda] cong with wildcard
Sergei Meshveliani
mechvel at botik.ru
Tue Nov 13 12:18:30 CET 2018
On Tue, 2018-07-10 at 22:11 +0100, Matthew Daggitt wrote:
> Also might be worth having a look at Bradley's Agda holes library
> (https://github.com/bch29/agda-holes).
>
Thank you. This may occur useful.
Of course, this can be done by developing/using a library based on
reflection.
------
Sergei
> On Tue, Jul 10, 2018 at 6:11 PM Arseniy Alekseyev <rotsor at gmail.com>
> wrote:
>
> What I found super-helpful to Agda is having the definitions
> of your operators abstract, e.g. working in an arbitrary
> semiring instead of with Nats directly.
> Then Agda is much happier to infer things in general and I
> think it will infer your example too.
>
> On Tue, Jul 10, 2018, 12:57 Sergei Meshveliani
> <mechvel at botik.ru> wrote:
>
> Dear all,
>
> There is a problem of unnecessary large terms in
> proofs in a source
> program. For example, in an equality proof by
> EquationalReasoning of
>
> begin T1 ≡⟨ cong foo1 eq1 ⟩
> T2 ≡⟨ cong foo2 eq2 ⟩
> T3
> ...
> ∎
>
> foo1, foo2 ... often occur large terms which can be
> replaced with `_'.
> But Agda cannot solve this.
> For example, for the Nat arithmetic, the line
>
> (a * 1 + 1+m * n) ≡⟨ cong (_+ (1+m * n))
> (Nat0.*1 a) ⟩
>
> means replacing a * 1 with a.
> And from the term triple
>
> (a * 1 + 1+m * n) , (cong (_+ _) (Nat0.*1 a)) ,
> (a + 1+m * n)
>
> it is clear (to a human) which term t to substitute
> for `_' in order
> to obtain the third term
> -- provided that this t is a subterm in (a * 1 + 1+m
> * n).
>
> More general: the derivation is
>
> E1 -- cong (op _) foo -->
> E2
>
> where op is an operator, and the prover needs to
> search in E1 all
> subterms to which (op X) matches, and which
> substitution derives E2.
>
> Does there exist a library for Agda that has tools for
> this?
> Can something easy be done towards such a tool?
>
> Regards,
>
> ------
> Sergei
>
>
>
>
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
More information about the Agda
mailing list