Re: [Fwd: Returned Mail: Re: [open-axiom-patches] HomotopicTo]

3 views
Skip to first unread message

Bill Page

unread,
Nov 24, 2008, 12:03:15 PM11/24/08
to Ralf HEMMECKE, fricas-devel
Although this thread started in the open-axiom list, I would like to
try to continue it here since it seems unfinished. Gaby stated that he
no longer wishes to discuss it on open-axiom.

On Mon, 24 Nov 2008 11:05:29 +0100 Ralf Hemmecke wrote:
>
>> CoercibleTo does not require that the 'retract' actually be defined.
>
> Exactly.
>
>> coerce
>> A ---------> B
>> | |
>> id | pullback | retract
>> | |
>> \|/ \|/
>> A -------> Union(A,"failed")
>> inj
>>
>> In other words the category CoercibleTo requires that coerce is an
>> injection that is pulled-back along a retraction. This means that all
>> values of A must be retractable from B.
>
> Bill, I like your categorial view on this. But I don't quite understand
> that above you say 'retract' need not exist and then you speak about
> a pull-back along a retraction.
>

I did not mean to imply that retract need not exist - only that in the
current usage 'coerce' and 'retract' are not defined in pairs. I do
wish to claim that whenever there is a valid 'coerce', then in
principle it must be possible to define the correspondinging
'retractIfCan'.

> If it were as you say, then why have the original developers made two
> categories CoercibleTo and RetractableTo? Oh, well, this I could
> understand, because they have to be applied to two different domains
> (one to A and the other to B). But CoercibleFrom and RetractableTo
> should be just one category. (Oh, CoercibleFrom does not exist in
> original Axiom, and I guess there was a reason for this.)
>

I am not convinced that there was any specific reason. I expect that
"CoercibleTo" was considered only a matter of "convenience". But
Martin's recent comments here about the desired "transitivity" of
CoercibleTo, reminded me of the need to define 'coerce' more formally.

> When you speak about "inj" as an injection. That does not mean
> that any (algebraic) structure of A must be preserved in
> Union(A,"failed").

What I labeled 'inj' in the diagram is just the injection of A into
the Union(A,"failed"). Union is just a categorical co-product. The
requirement that this square forms a pullback does mean that 'coerce'
must be monic (1-1 mapping).

> Which means that nothing is said about whether or not 'a' and
> 'retract(coerce(a))' gives the same thing (of non-failed).

It does require

retract(coerce(a)) = a

Since the arrows in the pullback diagram must commute. The pullback is
a limit like co-product.

> That sounds reasonable to me. Of course, one basically wishes
> for equality in such a case. But I don't think that is properly stated
> in the documentation of 'RetractableTo'.
>

I think all of this should be defined in a more rigorous manner.

> Another point that I would like to make in connection with coerce and
> the interpreter is related to Doye's thesis. From that I got the impression
> that the direction of the coerce arrows should not be symmetric. Rather
> one should have commutativity of all diagrams of the form
>
> A ---> B
> | |
> v v
> C ---> D
>
> where all the arrows denote 'coerce' functions. This property is for me
> more important thant your stated coerce+retract relation.
>

I think that this follows from my definition.

Regards,
Bill Page.

Gabriel Dos Reis

unread,
Nov 24, 2008, 3:42:51 PM11/24/08
to fricas...@googlegroups.com
"Bill Page" <bill...@newsynthesis.org> writes:

| Although this thread started in the open-axiom list, I would like to
| try to continue it here since it seems unfinished. Gaby stated that he
| no longer wishes to discuss it on open-axiom.

^^^^^^^^^^^^^

Which is obviously a lie; but you no longer surprise me.

-- Gaby

Johannes Grabmeier

unread,
Nov 24, 2008, 3:41:04 PM11/24/08
to fricas...@googlegroups.com
Just discovered the latest version of Fricas seems to have a broken )spool. Or
has something changed, which I am not aware of? The spool file only records
the input, no longer the output, as it used to be!

jgrabmeier@a007lxjg:~/arbeiten/condorcet> fricas
Checking for foreign routines
AXIOM="/usr/local/lib/fricas/target/i686-pc-linux"
spad-lib="/usr/local/lib/fricas/target/i686-pc-linux/lib/libspad.so"
foreign routines found
openServer result 0
FriCAS (AXIOM fork) Computer Algebra System
Version: FriCAS 1.0.4
Timestamp: Wednesday November 5, 2008 at 21:54:59
-----------------------------------------------------------------------------
Issue )copyright to view copyright notices.
Issue )summary for a summary of useful system commands.
Issue )quit to leave FriCAS and return to shell.
-----------------------------------------------------------------------------

(1) ->
(1) -> )spool xx.out

(1) -> 1+1
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/apply
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/c-doc
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/c-util
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/profile
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/category
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/compiler
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/define
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/functor
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/info
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/iterator
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/modemap
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/nruncomp
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/package
Loading /usr/local/lib/fricas/target/i686-pc-linux/autoload/htcheck

Loading /usr/local/lib/fricas/target/i686-pc-linux/algebra/SEX.fasl
for domain SExpression
(1) 2
Type: PositiveInteger
(2) -> x+y
Loading
/usr/local/lib/fricas/target/i686-pc-linux/algebra/A1AGG-.fasl
for domain OneDimensionalArrayAggregate&
Loading
/usr/local/lib/fricas/target/i686-pc-linux/algebra/SRAGG-.fasl
for domain StringAggregate&
Loading
/usr/local/lib/fricas/target/i686-pc-linux/algebra/FLAGG-.fasl
for domain FiniteLinearAggregate&
Loading
/usr/local/lib/fricas/target/i686-pc-linux/algebra/LNAGG-.fasl
for domain LinearAggregate&
Loading /usr/local/lib/fricas/target/i686-pc-linux/algebra/UPMP.fasl
for package UnivariatePolynomialMultiplicationPackage

Loading
/usr/local/lib/fricas/target/i686-pc-linux/algebra/LSAGG-.fasl
for domain ListAggregate&
Loading
/usr/local/lib/fricas/target/i686-pc-linux/algebra/DFLOAT.fasl
for domain DoubleFloat
Loading
/usr/local/lib/fricas/target/i686-pc-linux/algebra/SEXOF.fasl for
domain SExpressionOf
(2) y + x
Type: Polynomial(Integer)
(3) -> )spool

(3) ->


and here is the contents of the file xx.out:


(1) -> 1+1
(2) -> x+y
(3) -> )spool

--
Mit freundlichen Grüßen
Johannes Grabmeier

Prof. Dr. Johannes Grabmeier
Köckstr. 1, D-94469-Deggendorf

Tel.-pv. +49-(0)-991-2979-584, Tel.-mob. 0171-550-3789
Tel.-d +49-(0)-991-3615-141, Sekr. -154
Fax-p: +49-(0)-1803-5518-17745

Ralf Hemmecke

unread,
Nov 24, 2008, 4:12:09 PM11/24/08
to fricas...@googlegroups.com
To fricas developers... according to http://producingoss.com/ such
emails are best being ignored.
If you haven't, read ProducingOSS anyway.

Ralf

Ralf Hemmecke

unread,
Nov 24, 2008, 4:19:08 PM11/24/08
to fricas...@googlegroups.com
I am running just the previous version of 1.0.4 (after tagging but one
or two days before the release).

FriCAS (AXIOM fork) Computer Algebra System

Version: FriCAS 2008-09-26
Timestamp: Saturday October 18, 2008 at 15:11:26

There the xx.out file contains everything (including output).

Ralf

Bill Page

unread,
Nov 24, 2008, 4:33:53 PM11/24/08
to fricas...@googlegroups.com, open-axio...@lists.sf.net

I am glad that this is not true. I am sorry that I misinterpreted your
earlier remarks. I very much would like to continue this discussion
about the definition of 'coerce' in panAxiom.

Regards,
Bill Page.

Bill Page

unread,
Nov 24, 2008, 9:25:57 PM11/24/08
to fricas...@googlegroups.com

I also cannot reproduce this problem using FriCAS just newly built from svn:

FriCAS (AXIOM fork) Computer Algebra System

Version: FriCAS 2008-11-07
Timestamp: Monday November 24, 2008 at 20:06:50

The file xx.out contains both input and output.

Regards,
Bill Page.

Frithjof Schulze

unread,
Nov 25, 2008, 12:58:10 AM11/25/08
to fricas...@googlegroups.com

I believe this is due to the used Lisp systems. Using SBCL xx.out
contains only the input, using GCL or ECL it contains input and output.

)spool uses the Common Lisp function dribble and according to the
hyperspec dribble:

Either binds *standard-input* and *standard-output* or takes other
appropriate action, so as to send a record of the input/output
interaction to a file named by pathname.

...

dribble is intended primarily for interactive debugging; its effect
cannot be relied upon when used in a program.

--
Frithjof Schulze

Waldek Hebisch

unread,
Nov 25, 2008, 7:13:28 PM11/25/08
to fricas...@googlegroups.com
Frithjof Schulze wrote:
>
> On Mon, Nov 24, 2008 at 09:25:57PM -0500, Bill Page wrote:
> >
> > On Mon, Nov 24, 2008 at 4:19 PM, Ralf Hemmecke wrote:
> > >
> > > I am running just the previous version of 1.0.4 (after tagging but one
> > > or two days before the release).
> > >
> > > FriCAS (AXIOM fork) Computer Algebra System
> > > Version: FriCAS 2008-09-26
> > > Timestamp: Saturday October 18, 2008 at 15:11:26
> > >
> > > There the xx.out file contains everything (including output).
> > >
> >
> > I also cannot reproduce this problem using FriCAS just newly built from svn:
> >
> > FriCAS (AXIOM fork) Computer Algebra System
> > Version: FriCAS 2008-11-07
> > Timestamp: Monday November 24, 2008 at 20:06:50
> >
> > The file xx.out contains both input and output.
>
> I believe this is due to the used Lisp systems. Using SBCL xx.out
> contains only the input, using GCL or ECL it contains input and output.
>
> )spool uses the Common Lisp function dribble and according to the
> hyperspec dribble:
>
> Either binds *standard-input* and *standard-output* or takes other
> appropriate action, so as to send a record of the input/output
> interaction to a file named by pathname.
>
> ...
>

Yes. Currently much of output goes to *terminal-io*. In sbcl
dribble does not affect *terminal-io*, so this output is not
logged. Unfortunatly, logic of file manipulations is rather
twisted and we can not use *standard-output* without other
changes.

Problem should be simple to fix if we replace dribble by a
function which also redirects *terminal-io*. It would be
better (but require more work) to untangle current mess.


--
Waldek Hebisch
heb...@math.uni.wroc.pl

Waldek Hebisch

unread,
Nov 28, 2008, 9:11:52 PM11/28/08
to fricas...@googlegroups.com
Johannes Grabmeier wrote:
>
> Just discovered the latest version of Fricas seems to have a broken )spool. Or
> has something changed, which I am not aware of? The spool file only records
> the input, no longer the output, as it used to be!
>

Thanks for the report. I just commited cleanup of stream usage
which should fix this problem.

--
Waldek Hebisch
heb...@math.uni.wroc.pl

Reply all
Reply to author
Forward
0 new messages