diff options
author | dos-reis <gdr@axiomatics.org> | 2011-09-11 21:16:16 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-09-11 21:16:16 +0000 |
commit | 82b165809b7b67864b2ed9bc8217a2a197f58621 (patch) | |
tree | 72e0709c43ae8c844b85c1346870229ea5426860 /src/algebra | |
parent | c868015d912449eb551ff379031b4fe4b3fab255 (diff) | |
download | open-axiom-82b165809b7b67864b2ed9bc8217a2a197f58621.tar.gz |
* interp/lisplib.boot (isFunctor): Noe recognize Mapping as a functor.
* interp/g-opt.boot (doInlineCall): Tidy one more time.
($VMsideEffectFreeOperators): Move %aplly to $simpleVMoperators.
(optLET): Remove as unused.
* interp/lisp-backend.boot (expandApply): New. Register as
expander for %apply forms.
* interp/define.boot (getXmode): New.
(displayMissingFunctions): Use it instead of getmode.
(compDefineCapsuleFunction): Likewise.
(addDomain): Likewise.
(getSignature): Likewise.
(compile): Likewise.
(compJoin): Likewise.
* interp/compiler.boot (comp3): Likewise.
(compWithMappingMode): Likewise.
(applyMapping): Generate %apply form.
(compApplication): Likewise.
(autoCoerceByModemap): Likewise.
(extractCodeAndConstructTriple): Handle %apply forms.
(setqSingle): For domain variables, put corresponding macro forms
in the environment.
* algebra/ore.spad.pamphlet (Automorphism): Define Rep as a constant.
Adjust; include explicit uses of rep and per.
Diffstat (limited to 'src/algebra')
-rw-r--r-- | src/algebra/ore.spad.pamphlet | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/algebra/ore.spad.pamphlet b/src/algebra/ore.spad.pamphlet index e55b0eee..3aaeab04 100644 --- a/src/algebra/ore.spad.pamphlet +++ b/src/algebra/ore.spad.pamphlet @@ -296,26 +296,25 @@ Automorphism(R:Ring): Join(Group, Eltable(R, R)) with morphism: ((R, Integer) -> R) -> % ++ morphism(f) returns the morphism given by \spad{f^n(x) = f(x,n)}. == add + Rep == (R, Integer) -> R err: R -> R ident: (R, Integer) -> R iter: (R -> R, NonNegativeInteger, R) -> R iterat: (R -> R, R -> R, Integer, R) -> R - apply: (%, R, Integer) -> R - - Rep := ((R, Integer) -> R) - - 1 == ident + apply: (Rep, R, Integer) -> R + + 1 == per ident err r == error "Morphism is not invertible" ident(r, n) == r f = g == %peq(f,g)$Foreign(Builtin) - elt(f, r) == apply(f, r, 1) - inv f == apply(f, #1, - #2) - (f: %) ** (n: Integer) == apply(f, #1, n * #2) + elt(f, r) == apply(rep f, r, 1) + inv f == per apply(rep f, #1, - #2) + (f: %) ** (n: Integer) == per apply(rep f, #1, n * #2) coerce(f:%):OutputForm == message("R -> R") - morphism(f:(R, Integer) -> R):% == f + morphism(f:(R, Integer) -> R):% == per f morphism(f:R -> R):% == morphism(f, err) - morphism(f, g) == iterat(f, g, #2, #1) - apply(f, r, n) == (g := f pretend ((R, Integer) -> R); g(r, n)) + morphism(f, g) == per iterat(f, g, #2, #1) + apply(f, r, n) == f(r, n) iterat(f, g, n, r) == negative? n => iter(g, (-n)::NonNegativeInteger, r) @@ -327,7 +326,7 @@ Automorphism(R:Ring): Join(Group, Eltable(R, R)) with f * g == f = g => f**2 - iterat(f g #1, (inv g)(inv f) #1, #2, #1) + per iterat(f g #1, (inv g)(inv f) #1, #2, #1) @ \section{package OREPCTO UnivariateSkewPolynomialCategoryOps} |