Opened 7 years ago

Closed 5 years ago

#16561 closed enhancement (fixed)

Derivations for separable function fields

Reported by: saraedum Owned by:
Priority: minor Milestone: sage-8.0
Component: commutative algebra Keywords: sd59
Cc: Merged in:
Authors: Julian Rüth, Kwankyu Lee Reviewers: Vincent Delecroix, Travis Scrimshaw
Report Upstream: N/A Work issues:
Branch: da7cb4d (Commits, GitHub, GitLab) Commit: da7cb4d06fb82ce0bf3e7bb75e148299e7b36901
Dependencies: #16518 Stopgaps:

Status badges

Description

This ticket implements derivations for extensions of function fields.

Change History (41)

comment:1 Changed 7 years ago by saraedum

  • Branch set to u/saraedum/ticket/16561
  • Created changed from 06/27/14 03:03:26 to 06/27/14 03:03:26
  • Modified changed from 06/27/14 03:03:26 to 06/27/14 03:03:26

comment:2 Changed 7 years ago by saraedum

  • Commit set to 4441e47d91e67e63ff21a335774d717b0da98a57
  • Summary changed from Derivations for function fields to Derivations for separable function fields

New commits:

dc81be8Derivations for rational function fields
547f8dais_perfect() for fields
be532e5Added copyright header to finite_field_base.pyx
4441e47Added derivation for non-rational function fields

comment:3 Changed 7 years ago by saraedum

  • Status changed from new to needs_review

comment:4 Changed 7 years ago by git

  • Commit changed from 4441e47d91e67e63ff21a335774d717b0da98a57 to da3faa00946396a57c9e78f4314d0a114916a811

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

da3faa0Added derivations for non-rational separable function fields

comment:5 Changed 7 years ago by git

  • Commit changed from da3faa00946396a57c9e78f4314d0a114916a811 to fa528e82e60370afd6e365c5426c7b0ca3170503

Branch pushed to git repo; I updated commit sha1. New commits:

fa528e8Merge branch 'develop' into ticket/16561

comment:6 Changed 7 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:7 Changed 7 years ago by mmezzarobba

  • Status changed from needs_review to needs_work
  • Work issues set to BuildFailed

comment:8 Changed 6 years ago by git

  • Commit changed from fa528e82e60370afd6e365c5426c7b0ca3170503 to ac8427a78a3db9f82f83b1fd2f0c5d75d3035c12

Branch pushed to git repo; I updated commit sha1. New commits:

724b02cMerge branch 'develop' into t/16561/ticket/16561
ac8427aFixed format errors in docstrings

comment:9 Changed 6 years ago by saraedum

  • Status changed from needs_work to needs_review

comment:10 Changed 6 years ago by vdelecroix

  • Reviewers set to Vinent Delecroix
  • Status changed from needs_review to needs_work
  • Work issues BuildFailed deleted

Hello Julian,

It seems that the only derivation you are testing is y^2 - x. I have nothing against the square root but it would be cool to have a bit more diversity in the doctests. And it would be cool to have somewhere non trivial examples of

sage: d(p+q) == d(p) + d(q)
True
sage: d(p*q) == d(p)*q + p*d(q)
True

In the ALGORITHM block, I would rather use formula instead of algorithm. And you mentioned the non-separable case that this ticket is not about.

Beyond documentation, everything looks good to me.

Vincent

comment:11 Changed 6 years ago by saraedum

  • Reviewers changed from Vinent Delecroix to Vincent Delecroix

comment:12 Changed 6 years ago by saraedum

Thanks for the comments. I will try to make some changes.

comment:13 Changed 6 years ago by git

  • Commit changed from ac8427a78a3db9f82f83b1fd2f0c5d75d3035c12 to 06770a3da7ce7ba7771f44e5233925922903761b

Branch pushed to git repo; I updated commit sha1. New commits:

f967e4ftest Leibniz's law for function field derivations
d11261cTestSuite for inseparable and non-perfect base function fields
06770a3Fixed wording of function field derivation docstring

comment:14 Changed 6 years ago by saraedum

  • Status changed from needs_work to needs_review

comment:15 Changed 6 years ago by vdelecroix

CartesianProduct is likely to be deprecated (#15425 and #18411). If you want to iterate over the pairs you would better use product from itertools as

sage: from itertools import product
sage: for pair in product(S, repeat=2):
....:     # do what you want

comment:16 Changed 6 years ago by vdelecroix

  • Status changed from needs_review to needs_work

Now that #18411, it definitely needs to be done.

comment:17 Changed 5 years ago by git

  • Commit changed from 06770a3da7ce7ba7771f44e5233925922903761b to e2d88c6373ede984ef97b3e8bedabd9b24a7b8d7

Branch pushed to git repo; I updated commit sha1. New commits:

e2d88c6Merge branch 'develop' into t/16561/ticket/16561

comment:18 Changed 5 years ago by git

  • Commit changed from e2d88c6373ede984ef97b3e8bedabd9b24a7b8d7 to 96676252b03fc865ffb897a89002adab9d35f26b

Branch pushed to git repo; I updated commit sha1. New commits:

044d8c1use itertools.product instead of CartesianProduct
9667625use relative imports

comment:19 Changed 5 years ago by saraedum

  • Authors changed from Julian Rueth to Julian Rüth
  • Status changed from needs_work to needs_review

New commits:

044d8c1use itertools.product instead of CartesianProduct
9667625use relative imports

New commits:

044d8c1use itertools.product instead of CartesianProduct
9667625use relative imports

comment:20 Changed 5 years ago by klee

  • Status changed from needs_review to needs_work

Apply failed.

comment:21 Changed 5 years ago by klee

  • Branch changed from u/saraedum/ticket/16561 to u/klee/ticket/16561

comment:22 follow-up: Changed 5 years ago by klee

  • Commit changed from 96676252b03fc865ffb897a89002adab9d35f26b to b29cf2b956225e4837fc0beb3f2371351b2644f1

I just fixed merge conflict with the current beta. A few comments

  • In function_field.py:
    It is also possible to work with function fields over an imperfect base field::
    
        sage: N.<u> = FunctionField(K)
    

Is K imperfect here? Isn't it a finite field?

  • In derivation method:
            The general inseparable case is not implemented yet (see :trac:`16562`,
            :trac:`16564`.)`
    

A comment like this is better to be removed as it can soon become false (because of you :-)


New commits:

b29cf2bMerge sage 7.5.rc0

comment:23 Changed 5 years ago by saraedum

  • Branch changed from u/klee/ticket/16561 to u/saraedum/ticket/16561

comment:24 in reply to: ↑ 22 ; follow-ups: Changed 5 years ago by saraedum

  • Commit changed from b29cf2b956225e4837fc0beb3f2371351b2644f1 to 14e61dd2ab48f45ba8e764ef782236e4600416c2

Replying to klee:

I just fixed merge conflict with the current beta. A few comments

  • In function_field.py:
    It is also possible to work with function fields over an imperfect base field::
    
        sage: N.<u> = FunctionField(K)
    

Is K imperfect here? Isn't it a finite field?

No, K is a function field.

  • In derivation method:
            The general inseparable case is not implemented yet (see :trac:`16562`,
            :trac:`16564`.)`
    

A comment like this is better to be removed as it can soon become false (because of you :-)

My experience with this has been that there is virtually no movement in function fields in Sage. So, I'd like to point people to places where they can help if they'd like.


New commits:

14e61ddMerge branch 'develop' into t/16561/ticket/16561

comment:25 Changed 5 years ago by saraedum

I can of course remove the ticket references if you have strong feelings about it.

comment:26 Changed 5 years ago by git

  • Commit changed from 14e61dd2ab48f45ba8e764ef782236e4600416c2 to 7d8f22adb19c92fe66bcfd634d366b84eff19ff0

Branch pushed to git repo; I updated commit sha1. New commits:

7d8f22aTest more cases in derivation doctests

comment:27 Changed 5 years ago by saraedum

  • Status changed from needs_work to needs_review

comment:28 Changed 5 years ago by klee

Some comments:

derivation method: The return value is a derivation uniquely determined from the derivation of the base rational function field that maps x to 1. How about simply saying the return value is a derivation, rather than a generator of the space of derivations or endofunction (in OUPUT block). The term generator has a programming meaning in Sage and endofunction is obscure.

REFERENCES block: We now have a master bibliography file. See

http://doc.sagemath.org/html/en/developer/coding_basics.html#sage-s-master-bibliography-file

comment:29 Changed 5 years ago by klee

  • Status changed from needs_review to needs_work

comment:30 in reply to: ↑ 24 Changed 5 years ago by klee

Replying to saraedum:

My experience with this has been that there is virtually no movement in function fields in Sage. So, I'd like to point people to places where they can help if they'd like.

Ok. I agree that function fields part of Sage needs much attention. I had been forced to move to Magma because of this at some point and was surprised when I returned to Sage to find that there was not much changed in that situation :-(

comment:31 in reply to: ↑ 24 Changed 5 years ago by klee

Hi Julian,

I am interested in pushing this ticket. If you do not have a plan to work on this, then I could work. Would this be ok with you?

comment:32 Changed 5 years ago by saraedum

Yes, hooray! Please go ahead. Let me know if you need any help :)

comment:33 Changed 5 years ago by klee

  • Branch changed from u/saraedum/ticket/16561 to u/klee/16561
  • Commit changed from 7d8f22adb19c92fe66bcfd634d366b84eff19ff0 to 4bb538e4aefddb477fa9a436aa38989026afd8a8

New commits:

fcc68c1Merge sage 7.6
4bb538eImprove docstrings

comment:34 Changed 5 years ago by git

  • Commit changed from 4bb538e4aefddb477fa9a436aa38989026afd8a8 to 2847da0c1b63a9ebd9281fb0b4e5e8c790561fd3

Branch pushed to git repo; I updated commit sha1. New commits:

2847da0Trim code and docstrings

comment:35 Changed 5 years ago by klee

  • Status changed from needs_work to needs_review

comment:36 Changed 5 years ago by git

  • Commit changed from 2847da0c1b63a9ebd9281fb0b4e5e8c790561fd3 to 939fda60785e9a082d59b0d6a8e0c2afd2f9ec36

Branch pushed to git repo; I updated commit sha1. New commits:

939fda6Refine docstrings

comment:37 Changed 5 years ago by tscrim

  • Milestone changed from sage-6.4 to sage-8.0

IMO, a better idiom for the _test_derivative is instead of catching the NotImplementedError and returning as normal would be to let it raise the error and instead explicit skip the test:

TestSuite(X).run(skip='_test_derivative')

comment:38 Changed 5 years ago by git

  • Commit changed from 939fda60785e9a082d59b0d6a8e0c2afd2f9ec36 to da7cb4d06fb82ce0bf3e7bb75e148299e7b36901

Branch pushed to git repo; I updated commit sha1. New commits:

1a0414cMerge branch 'develop'
da7cb4dImprove _test_derivative test

comment:39 Changed 5 years ago by tscrim

  • Authors changed from Julian Rüth to Julian Rüth, Kwankyu Lee
  • Reviewers changed from Vincent Delecroix to Vincent Delecroix, Travis Scrimshaw
  • Status changed from needs_review to positive_review

I think this is good to go, so I'm setting it to a positive review. If there are any objections, feel free to set it back.

comment:40 Changed 5 years ago by klee

I have no objection :-) Thank you!

Last edited 5 years ago by klee (previous) (diff)

comment:41 Changed 5 years ago by vbraun

  • Branch changed from u/klee/16561 to da7cb4d06fb82ce0bf3e7bb75e148299e7b36901
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.