[Agda] Strict application
Andreas Abel
andreas.abel at ifi.lmu.de
Sun Apr 27 10:54:41 CEST 2014
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
If you want to formalize call-by-value lambda-calculus (instead of
cbn, which you do below), you would need some concept of value.
For your concrete example below, the only values are lambdas, so you
could try
beta : forall f g -> app (lam f) (lam g) \equiv f (lam g).
But usually cbv lambda-calculus includes variables in the concept of
values, so that you can also reason about open terms.
Cheers,
Andreas
On 26.04.2014 18:00, Andrés Sicard-Ramírez wrote:
>
> On 26 April 2014 10:28, Wolfram Kahl <kahl at cas.mcmaster.ca
> <mailto:kahl at cas.mcmaster.ca>> wrote:
>
>> {-# NO_TERMINATION_CHECK #-} loop : ℕ loop = loop
>>
>> foo : ℕ foo = (λ _ → 0) loop
>
> This is not Agda code (or, if you want, is is ``illegal Agda
> code''): You are only allowed to use {-# NO_TERMINATION_CHECK #-}
> where you have a separate termination proof.
>
>
> I agree. That is ``illegal Agda code''.
>
> Let _≡_ be the propositional equality. I can formalise a
> non-strict application (beta) by
>
> postulate D : Set app : D → D → D lam : (D → D) → D beta : ∀ f
> a → app (lam f) a ≡ f a
>
> Using the same approach, can I formalise a strict application?
>
> Best,
>
> -- Andrés
>
>
> _______________________________________________ Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
>
- --
Andreas Abel <>< Du bist der geliebte Mensch.
Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden
andreas.abel at gu.se
http://www2.tcs.ifi.lmu.de/~abel/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iEYEARECAAYFAlNcxcgACgkQPMHaDxpUpLPdiQCggY2tIq3Wa3C0qNBfSDfEY3L6
xHkAnj4eCEm1V97RuH06tkPCic82TPvJ
=LyE2
-----END PGP SIGNATURE-----
More information about the Agda
mailing list