[Agda] Re: Formalization of Linear Algebra in agda

Guillermo Calderon calderon at fing.edu.uy
Fri Jul 8 15:52:16 CEST 2016


Dear Sergei,

Thanks for your answer.
I will take a look to Docon.
Thanks
Guillermo

On 30/06/16 08:06, Sergei Meshveliani wrote:
> On Tue, 2016-06-28 at 15:27 -0300, Guillermo Calderon wrote:
>
>> Dear all,
>>
>> I am looking for a formalization  in Agda of vectorial spaces (over a
>> field).
>> My concern is to work in the formalization of some concepts involved
>> with Grassman and Clifford algebras which are defined as extensions of
>> vectorial spaces.
>>
>> I would be very grateful if anyone can give me some references on
>> this topic.
>>
>> Thanks,
>
>
> DoCon-A of 0.04  is written in Agda, and it has
>
> (I) definitions and many items for  Semigroup, Group, Ring, ... , Field,
>
> (II) definitions for  LeftModule (over a ring)
>       and  VectorSpace (over a field).
>
> But (II) are only bare definitions. Like this:
>
> -----------------------------------------------------------------------
> record LeftModule {α α= β β=} (upR  : UpRing α α=)
>                                (upVG : UpCommutativeGroup β β=) :
>                                                         Set (β= ⊔ β ⊔ α)
>    where
>    constructor lModule′
>
>    private C    = UpRing.Carrier upR
>            V    = UpCommutativeGroup.Carrier upVG
>            upRd = UpRing.upRingoid upR
>
>    field  _∙_            :  C → V → V         -- coefficient * vector
>           leftModuleLaws :  LeftModuleLaws upRd upVG _∙_
>
> ------------------------------------------------------------------------
> ringAsLeftModule :  ∀ {α α=} (upR : UpRing α α=) →
>                           let upA = Ring.+upCommGroup $ UpRing.ring upR
>                           in  LeftModule upR upA
>
> -- simple lemma about a ring
>
> ringAsLeftModule upR =  lModule′ _*_ mLaws
>    where
>    open UpRing upR using (_*_; +upCommGroup; upRingoid; lDistrib;
>                                                         rDistrib; *assoc)
>
>    mLaws :  LeftModuleLaws upRingoid +upCommGroup _*_
>    mLaws =
>          record{ additiveByCoef       =  (\a b v → rDistrib v a b)
>                ; additiveByVec        =  lDistrib
>                ; moduleMulAssociative =  *assoc }
>
> -----------------------------------------------------------------------
>
> I hope to release DoCon-0.04 this summer (it remains to revise the
> manual).
>
> To program any real computation with vector spaces, one needs to add
> definitions of a finite basis, decomposition by a basis, and so on.
> Probably, I shall do this, because one can compute almost nothing in
> algebra without using modules and vector spaces.
> But may be this will not be this year.
>
> Regards,
>
> ------
> Sergei
>
>
>




More information about the Agda mailing list