diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 1fff3df874..0d38df8fe5 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -2,6 +2,10 @@ +Backport from #XYZ (the original PR on master). + + + ##### Things done/to do @@ -18,20 +22,6 @@ -##### Compatibility with MathComp 2.0 - - - - - -- [ ] I added the label `TODO: HB port` to make sure someone ports this PR to - the `hierarchy-builder` branch **or** I already opened an issue or PR (please cross reference). - ##### Automatic note to reviewers diff --git a/.github/workflows/nix-action-coq-8.15.yml b/.github/workflows/nix-action-coq-8.15.yml deleted file mode 100644 index 262b2beaaf..0000000000 --- a/.github/workflows/nix-action-coq-8.15.yml +++ /dev/null @@ -1,2351 +0,0 @@ -jobs: - QuickChick: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target QuickChick - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"QuickChick\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq-ext-lib' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq-ext-lib" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: simple-io' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "simple-io" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "QuickChick" - Verdi: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target Verdi - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"Verdi\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: Cheerios' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "Cheerios" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: InfSeqExt' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "InfSeqExt" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "Verdi" - addition-chains: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target addition-chains - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"addition-chains\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: paramcoq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "paramcoq" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "addition-chains" - autosubst: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target autosubst - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"autosubst\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "autosubst" - category-theory: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target category-theory - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"category-theory\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: equations' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "equations" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "category-theory" - coq: - needs: [] - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target coq - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - coq-bits: - needs: - - coq - - mathcomp-algebra - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target coq-bits - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"coq-bits\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq-bits" - coqeal: - needs: - - coq - - mathcomp-algebra - - multinomials - - mathcomp-real-closed - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target coqeal - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"coqeal\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: bignums' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "bignums" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: paramcoq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "paramcoq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: multinomials' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "multinomials" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-real-closed' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-real-closed" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coqeal" - coquelicot: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target coquelicot - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"coquelicot\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coquelicot" - deriving: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target deriving - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"deriving\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "deriving" - extructures: - needs: - - coq - - mathcomp-ssreflect - - deriving - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target extructures - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"extructures\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: deriving' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "deriving" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "extructures" - fourcolor: - needs: - - coq - - mathcomp-algebra - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target fourcolor - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"fourcolor\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "fourcolor" - gaia: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target gaia - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"gaia\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "gaia" - graph-theory: - needs: - - coq - - mathcomp-algebra - - mathcomp-finmap - - mathcomp-fingroup - - fourcolor - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target graph-theory - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"graph-theory\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: fourcolor' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "fourcolor" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "graph-theory" - interval: - needs: - - coq - - coquelicot - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target interval - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"interval\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: bignums' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "bignums" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coquelicot' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coquelicot" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: flocq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "flocq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "interval" - mathcomp: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - - mathcomp-character - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-character' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-character" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp" - mathcomp-abel: - needs: - - coq - - mathcomp-field - - mathcomp-real-closed - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-abel - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-abel\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-real-closed' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-real-closed" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-abel" - mathcomp-algebra: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-algebra - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-algebra\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - mathcomp-analysis: - needs: - - coq - - mathcomp-classical - - mathcomp-field - - mathcomp-bigenough - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-analysis - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-analysis\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-classical' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-classical" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-bigenough" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-analysis" - mathcomp-bigenough: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-bigenough - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-bigenough\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-bigenough" - mathcomp-character: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-character - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-character\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-character" - mathcomp-classical: - needs: - - coq - - mathcomp-algebra - - mathcomp-finmap - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-classical - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-classical\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-classical" - mathcomp-doc: - needs: - - coq - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-doc - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-doc\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-doc" - mathcomp-field: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-field - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-field\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-field" - mathcomp-fingroup: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-fingroup - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-fingroup\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - mathcomp-finmap: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-finmap - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-finmap\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-finmap" - mathcomp-real-closed: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-field - - mathcomp-fingroup - - mathcomp-solvable - - mathcomp-bigenough - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-real-closed - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-real-closed\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-bigenough" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-real-closed" - mathcomp-single: - needs: [] - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-single - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-single\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-single" - mathcomp-solvable: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-solvable - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-solvable\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-solvable" - mathcomp-ssreflect: - needs: - - coq - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-ssreflect - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-ssreflect\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - mathcomp-tarjan: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-tarjan - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-tarjan\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-tarjan" - mathcomp-zify: - needs: - - coq - - mathcomp-algebra - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-zify - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"mathcomp-zify\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-zify" - multinomials: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-finmap - - mathcomp-fingroup - - mathcomp-bigenough - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target multinomials - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"multinomials\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-bigenough" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "multinomials" - odd-order: - needs: - - coq - - mathcomp-character - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - - mathcomp - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target odd-order - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"odd-order\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-character' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-character" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "odd-order" - reglang: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target reglang - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"reglang\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "reglang" - relation-algebra: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target relation-algebra - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.15\" --argstr job \"relation-algebra\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: aac-tactics' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "aac-tactics" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.15" - --argstr job "relation-algebra" -name: Nix CI for bundle coq-8.15 -'on': - pull_request: - paths: - - .github/workflows/** - pull_request_target: - types: - - opened - - synchronize - - reopened - push: - branches: - - master diff --git a/.github/workflows/nix-action-coq-8.16.yml b/.github/workflows/nix-action-coq-8.16.yml index a27c87b19e..80af52bf77 100644 --- a/.github/workflows/nix-action-coq-8.16.yml +++ b/.github/workflows/nix-action-coq-8.16.yml @@ -42,8 +42,8 @@ jobs: name: Checking presence of CI target QuickChick run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.16\" --argstr job \"QuickChick\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\"\ + \ | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -107,8 +107,8 @@ jobs: name: Checking presence of CI target Verdi run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.16\" --argstr job \"Verdi\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -174,8 +174,8 @@ jobs: name: Checking presence of CI target addition-chains run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.16\" --argstr job \"addition-chains\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -243,8 +243,8 @@ jobs: name: Checking presence of CI target autosubst run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.16\" --argstr job \"autosubst\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -300,8 +300,8 @@ jobs: name: Checking presence of CI target category-theory run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.16\" --argstr job \"category-theory\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -359,8 +359,8 @@ jobs: name: Checking presence of CI target coq run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.16\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -408,8 +408,8 @@ jobs: name: Checking presence of CI target coq-bits run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.16\" --argstr job \"coq-bits\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -422,1148 +422,7 @@ jobs: name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "coq-bits" - coqeal: - needs: - - coq - - mathcomp-algebra - - multinomials - - mathcomp-real-closed - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target coqeal - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"coqeal\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: bignums' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "bignums" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: paramcoq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "paramcoq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: multinomials' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "multinomials" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-real-closed' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-real-closed" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coqeal" - coquelicot: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target coquelicot - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"coquelicot\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coquelicot" - deriving: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target deriving - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"deriving\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "deriving" - extructures: - needs: - - coq - - mathcomp-ssreflect - - deriving - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target extructures - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"extructures\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: deriving' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "deriving" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "extructures" - fourcolor: - needs: - - coq - - mathcomp-algebra - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target fourcolor - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"fourcolor\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "fourcolor" - gaia: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target gaia - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"gaia\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "gaia" - graph-theory: - needs: - - coq - - mathcomp-algebra - - mathcomp-finmap - - mathcomp-fingroup - - fourcolor - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target graph-theory - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"graph-theory\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: fourcolor' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "fourcolor" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "graph-theory" - interval: - needs: - - coq - - coquelicot - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target interval - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"interval\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: bignums' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "bignums" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coquelicot' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coquelicot" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: flocq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "flocq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "interval" - mathcomp: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - - mathcomp-character - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-character' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-character" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp" - mathcomp-abel: - needs: - - coq - - mathcomp-field - - mathcomp-real-closed - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-abel - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-abel\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-real-closed' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-real-closed" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-abel" - mathcomp-algebra: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-algebra - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-algebra\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - mathcomp-analysis: - needs: - - coq - - mathcomp-classical - - mathcomp-field - - mathcomp-bigenough - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-analysis - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-analysis\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-classical' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-classical" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-bigenough" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-analysis" - mathcomp-bigenough: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-bigenough - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-bigenough\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-bigenough" - mathcomp-character: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-character - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-character\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-character" - mathcomp-classical: - needs: - - coq - - mathcomp-algebra - - mathcomp-finmap - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-classical - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-classical\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-classical" - mathcomp-doc: - needs: - - coq - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-doc - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-doc\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-doc" - mathcomp-field: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-field - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-field\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-field" - mathcomp-fingroup: + coquelicot: needs: - coq - mathcomp-ssreflect @@ -1603,11 +462,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-fingroup + name: Checking presence of CI target coquelicot run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-fingroup\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"coquelicot\" \\\n --dry-run 2>&1 >\ + \ /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\"\ + \ | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -1619,11 +478,13 @@ jobs: - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - mathcomp-finmap: + --argstr job "coquelicot" + interval: needs: - coq + - coquelicot - mathcomp-ssreflect + - mathcomp-fingroup runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -1660,32 +521,48 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-finmap + name: Checking presence of CI target interval run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-finmap\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"interval\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: bignums' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "bignums" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coquelicot' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "coquelicot" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: flocq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "flocq" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "mathcomp-fingroup" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-finmap" - mathcomp-real-closed: + --argstr job "interval" + mathcomp: needs: - coq - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-field - mathcomp-fingroup + - mathcomp-algebra - mathcomp-solvable - - mathcomp-bigenough + - mathcomp-field + - mathcomp-character runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -1722,11 +599,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-real-closed + name: Checking presence of CI target mathcomp run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-real-closed\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"mathcomp\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -1735,32 +612,39 @@ jobs: name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "mathcomp-fingroup" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: mathcomp-algebra' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "mathcomp-algebra" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' + name: 'Building/fetching previous CI target: mathcomp-solvable' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-field" + --argstr job "mathcomp-solvable" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' + name: 'Building/fetching previous CI target: mathcomp-field' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" + --argstr job "mathcomp-field" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' + name: 'Building/fetching previous CI target: mathcomp-character' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-solvable" + --argstr job "mathcomp-character" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-bigenough" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-real-closed" - mathcomp-single: - needs: [] + --argstr job "mathcomp" + mathcomp-algebra: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -1797,21 +681,39 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-single + name: Checking presence of CI target mathcomp-algebra run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-single\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"mathcomp-algebra\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-single" - mathcomp-solvable: + --argstr job "mathcomp-algebra" + mathcomp-character: needs: - coq - mathcomp-ssreflect - mathcomp-fingroup - mathcomp-algebra + - mathcomp-solvable + - mathcomp-field runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -1848,11 +750,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-solvable + name: Checking presence of CI target mathcomp-character run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-solvable\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"mathcomp-character\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -1870,10 +772,22 @@ jobs: run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "mathcomp-algebra" - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target + name: 'Building/fetching previous CI target: mathcomp-solvable' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "mathcomp-solvable" - mathcomp-ssreflect: + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-field' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "mathcomp-field" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "mathcomp-character" + mathcomp-doc: needs: - coq runs-on: ubuntu-latest @@ -1912,24 +826,30 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-ssreflect + name: Checking presence of CI target mathcomp-doc run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-ssreflect\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"mathcomp-doc\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - mathcomp-tarjan: + --argstr job "mathcomp-doc" + mathcomp-field: needs: - coq - mathcomp-ssreflect - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -1966,11 +886,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-tarjan + name: Checking presence of CI target mathcomp-field run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-tarjan\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"mathcomp-field\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -1983,16 +903,26 @@ jobs: name: 'Building/fetching previous CI target: mathcomp-fingroup' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-tarjan" - mathcomp-zify: + --argstr job "mathcomp-field" + mathcomp-fingroup: needs: - coq - - mathcomp-algebra - mathcomp-ssreflect - - mathcomp-fingroup runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -2029,39 +959,29 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-zify + name: Checking presence of CI target mathcomp-fingroup run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"mathcomp-zify\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"mathcomp-fingroup\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "mathcomp-ssreflect" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-zify" - multinomials: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-finmap - - mathcomp-fingroup - - mathcomp-bigenough + --argstr job "mathcomp-fingroup" + mathcomp-single: + needs: [] runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -2098,49 +1018,21 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target multinomials + name: Checking presence of CI target mathcomp-single run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"multinomials\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-bigenough" + \ bundle \"coq-8.16\" --argstr job \"mathcomp-single\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "multinomials" - odd-order: + --argstr job "mathcomp-single" + mathcomp-solvable: needs: - coq - - mathcomp-character - mathcomp-ssreflect - mathcomp-fingroup - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - - mathcomp runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -2177,19 +1069,15 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target odd-order + name: Checking presence of CI target mathcomp-solvable run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"odd-order\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"mathcomp-solvable\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-character' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-character" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -2203,25 +1091,16 @@ jobs: run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "mathcomp-algebra" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "odd-order" - reglang: + --argstr job "mathcomp-solvable" + mathcomp-ssreflect: needs: - coq - - mathcomp-ssreflect runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -2258,23 +1137,23 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target reglang + name: Checking presence of CI target mathcomp-ssreflect run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.16\" --argstr job \"reglang\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.16\" --argstr job \"mathcomp-ssreflect\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" --argstr job "coq" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "mathcomp-ssreflect" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" - --argstr job "reglang" + --argstr job "mathcomp-ssreflect" relation-algebra: needs: - coq @@ -2318,8 +1197,8 @@ jobs: name: Checking presence of CI target relation-algebra run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.16\" --argstr job \"relation-algebra\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.16" @@ -2340,13 +1219,15 @@ name: Nix CI for bundle coq-8.16 'on': pull_request: paths: - - .github/workflows/** + - .github/workflows/nix-action-coq-8.16.yml pull_request_target: + paths-ignore: + - .github/workflows/nix-action-coq-8.16.yml types: - opened - synchronize - reopened push: branches: + - mathcomp-1 - master - - hierarchy-builder diff --git a/.github/workflows/nix-action-coq-8.17.yml b/.github/workflows/nix-action-coq-8.17.yml index 220ae09870..d2694efbb0 100644 --- a/.github/workflows/nix-action-coq-8.17.yml +++ b/.github/workflows/nix-action-coq-8.17.yml @@ -1,6 +1,8 @@ jobs: - coq: - needs: [] + QuickChick: + needs: + - coq + - mathcomp-ssreflect runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -37,16 +39,32 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target coq + name: Checking presence of CI target QuickChick run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"QuickChick\" \\\n --dry-run 2>&1 >\ + \ /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\"\ + \ | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target + name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "coq" - coquelicot: + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq-ext-lib' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "coq-ext-lib" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: simple-io' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "simple-io" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "QuickChick" + Verdi: needs: - coq - mathcomp-ssreflect @@ -86,15 +104,23 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target coquelicot + name: Checking presence of CI target Verdi run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"coquelicot\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"Verdi\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: Cheerios' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "Cheerios" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: InfSeqExt' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "InfSeqExt" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -102,11 +128,13 @@ jobs: - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "coquelicot" - deriving: + --argstr job "Verdi" + addition-chains: needs: - coq - mathcomp-ssreflect + - mathcomp-algebra + - mathcomp-fingroup runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -143,11 +171,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target deriving + name: Checking presence of CI target addition-chains run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"deriving\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"addition-chains\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -156,15 +184,26 @@ jobs: name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: paramcoq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "paramcoq" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "deriving" - extructures: + --argstr job "addition-chains" + autosubst: needs: - coq - mathcomp-ssreflect - - deriving runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -201,11 +240,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target extructures + name: Checking presence of CI target autosubst run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"extructures\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"autosubst\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -214,20 +253,14 @@ jobs: name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: deriving' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "deriving" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "extructures" - fourcolor: + --argstr job "autosubst" + category-theory: needs: - coq - - mathcomp-algebra - mathcomp-ssreflect - - mathcomp-fingroup runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -264,37 +297,78 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target fourcolor + name: Checking presence of CI target category-theory run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"fourcolor\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"category-theory\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-algebra" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-ssreflect" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' + name: 'Building/fetching previous CI target: equations' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-fingroup" + --argstr job "equations" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "category-theory" + coq: + needs: [] + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target coq + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.17\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "fourcolor" - gaia: + --argstr job "coq" + coquelicot: needs: - coq - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-fingroup runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -331,11 +405,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target gaia + name: Checking presence of CI target coquelicot run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"gaia\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"coquelicot\" \\\n --dry-run 2>&1 >\ + \ /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\"\ + \ | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -344,18 +418,10 @@ jobs: name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-fingroup" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "gaia" + --argstr job "coquelicot" interval: needs: - coq @@ -401,8 +467,8 @@ jobs: name: Checking presence of CI target interval run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.17\" --argstr job \"interval\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -479,8 +545,8 @@ jobs: name: Checking presence of CI target mathcomp run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ \ bundle \"coq-8.17\" --argstr job \"mathcomp\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -509,15 +575,19 @@ jobs: name: 'Building/fetching previous CI target: mathcomp-character' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-character" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp" - mathcomp-abel: + mathcomp-algebra: needs: - coq - - mathcomp-field - - mathcomp-real-closed + - mathcomp-ssreflect + - mathcomp-fingroup runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -554,32 +624,39 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-abel + name: Checking presence of CI target mathcomp-algebra run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-abel\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"mathcomp-algebra\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "coq" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-field" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-fingroup" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-real-closed' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-real-closed" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-abel" - mathcomp-algebra: + --argstr job "mathcomp-algebra" + mathcomp-character: needs: - coq - mathcomp-ssreflect - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + - mathcomp-field runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -616,11 +693,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-algebra + name: Checking presence of CI target mathcomp-character run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-algebra\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"mathcomp-character\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -634,13 +711,28 @@ jobs: run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-fingroup" - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target + name: 'Building/fetching previous CI target: mathcomp-algebra' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-algebra" - mathcomp-bigenough: + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-field' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-field" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-character" + mathcomp-doc: needs: - coq - - mathcomp-ssreflect runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -677,31 +769,30 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-bigenough + name: Checking presence of CI target mathcomp-doc run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-bigenough\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"mathcomp-doc\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "coq" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-bigenough" - mathcomp-character: + --argstr job "mathcomp-doc" + mathcomp-field: needs: - coq - mathcomp-ssreflect - mathcomp-fingroup - mathcomp-algebra - mathcomp-solvable - - mathcomp-field runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -738,11 +829,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-character + name: Checking presence of CI target mathcomp-field run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-character\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"mathcomp-field\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -764,16 +855,17 @@ jobs: run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-solvable" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-field" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-character" - mathcomp-doc: + --argstr job "mathcomp-field" + mathcomp-fingroup: needs: - coq + - mathcomp-ssreflect runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -810,26 +902,29 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-doc + name: Checking presence of CI target mathcomp-fingroup run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-doc\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"mathcomp-fingroup\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-doc" - mathcomp-field: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable + --argstr job "mathcomp-fingroup" + mathcomp-single: + needs: [] runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -866,39 +961,21 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-field + name: Checking presence of CI target mathcomp-single run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-field\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-solvable" + \ bundle \"coq-8.17\" --argstr job \"mathcomp-single\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-field" - mathcomp-fingroup: + --argstr job "mathcomp-single" + mathcomp-solvable: needs: - coq - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -935,11 +1012,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-fingroup + name: Checking presence of CI target mathcomp-solvable run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-fingroup\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"mathcomp-solvable\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -949,13 +1026,24 @@ jobs: run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-ssreflect" - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target + name: 'Building/fetching previous CI target: mathcomp-fingroup' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "mathcomp-fingroup" - mathcomp-finmap: + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" + --argstr job "mathcomp-solvable" + mathcomp-ssreflect: needs: - coq - - mathcomp-ssreflect runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -992,32 +1080,27 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-finmap + name: Checking presence of CI target mathcomp-ssreflect run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-finmap\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"mathcomp-ssreflect\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "coq" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-finmap" - mathcomp-real-closed: + --argstr job "mathcomp-ssreflect" + relation-algebra: needs: - coq - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-field - - mathcomp-fingroup - - mathcomp-solvable - - mathcomp-bigenough runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -1054,551 +1137,19 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-real-closed + name: Checking presence of CI target relation-algebra run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-real-closed\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-8.17\" --argstr job \"relation-algebra\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" --argstr job "coq" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' + name: 'Building/fetching previous CI target: aac-tactics' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-bigenough" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-real-closed" - mathcomp-single: - needs: [] - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-single - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-single\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-single" - mathcomp-solvable: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-solvable - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-solvable\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-solvable" - mathcomp-ssreflect: - needs: - - coq - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-ssreflect - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-ssreflect\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" - mathcomp-tarjan: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-tarjan - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-tarjan\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-tarjan" - mathcomp-zify: - needs: - - coq - - mathcomp-algebra - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-zify - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"mathcomp-zify\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-zify" - multinomials: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-finmap - - mathcomp-fingroup - - mathcomp-bigenough - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target multinomials - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"multinomials\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-bigenough" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "multinomials" - odd-order: - needs: - - coq - - mathcomp-character - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - - mathcomp - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target odd-order - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"odd-order\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-character' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-character" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "mathcomp" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "odd-order" - reglang: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target reglang - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-8.17\" --argstr job \"reglang\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "coq" + --argstr job "aac-tactics" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" @@ -1606,18 +1157,20 @@ jobs: - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.17" - --argstr job "reglang" + --argstr job "relation-algebra" name: Nix CI for bundle coq-8.17 'on': pull_request: paths: - - .github/workflows/** + - .github/workflows/nix-action-coq-8.17.yml pull_request_target: + paths-ignore: + - .github/workflows/nix-action-coq-8.17.yml types: - opened - synchronize - reopened push: branches: + - mathcomp-1 - master - - hierarchy-builder diff --git a/.github/workflows/nix-action-coq-8.18.yml b/.github/workflows/nix-action-coq-8.18.yml new file mode 100644 index 0000000000..25573ada49 --- /dev/null +++ b/.github/workflows/nix-action-coq-8.18.yml @@ -0,0 +1,1054 @@ +jobs: + QuickChick: + needs: + - coq + - mathcomp-ssreflect + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target QuickChick + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"QuickChick\" \\\n --dry-run 2>&1 >\ + \ /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\"\ + \ | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq-ext-lib' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq-ext-lib" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: simple-io' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "simple-io" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "QuickChick" + Verdi: + needs: + - coq + - mathcomp-ssreflect + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target Verdi + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"Verdi\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: Cheerios' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "Cheerios" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: InfSeqExt' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "InfSeqExt" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "Verdi" + addition-chains: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-algebra + - mathcomp-fingroup + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target addition-chains + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"addition-chains\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: paramcoq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "paramcoq" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "addition-chains" + autosubst: + needs: + - coq + - mathcomp-ssreflect + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target autosubst + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"autosubst\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "autosubst" + coq: + needs: [] + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target coq + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + coquelicot: + needs: + - coq + - mathcomp-ssreflect + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target coquelicot + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"coquelicot\" \\\n --dry-run 2>&1 >\ + \ /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\"\ + \ | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coquelicot" + interval: + needs: + - coq + - coquelicot + - mathcomp-ssreflect + - mathcomp-fingroup + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target interval + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"interval\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: bignums' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "bignums" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coquelicot' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coquelicot" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: flocq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "flocq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "interval" + mathcomp: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + - mathcomp-field + - mathcomp-character + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"mathcomp\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-field' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-field" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-character' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-character" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp" + mathcomp-algebra: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-algebra + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"mathcomp-algebra\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-algebra" + mathcomp-character: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + - mathcomp-field + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-character + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"mathcomp-character\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-field' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-field" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-character" + mathcomp-doc: + needs: + - coq + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-doc + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"mathcomp-doc\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-doc" + mathcomp-field: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-field + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"mathcomp-field\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-field" + mathcomp-fingroup: + needs: + - coq + - mathcomp-ssreflect + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-fingroup + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"mathcomp-fingroup\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-fingroup" + mathcomp-single: + needs: [] + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-single + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"mathcomp-single\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-single" + mathcomp-solvable: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-solvable + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"mathcomp-solvable\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-solvable" + mathcomp-ssreflect: + needs: + - coq + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-ssreflect + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.18\" --argstr job \"mathcomp-ssreflect\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.18" + --argstr job "mathcomp-ssreflect" +name: Nix CI for bundle coq-8.18 +'on': + pull_request: + paths: + - .github/workflows/nix-action-coq-8.18.yml + pull_request_target: + paths-ignore: + - .github/workflows/nix-action-coq-8.18.yml + types: + - opened + - synchronize + - reopened + push: + branches: + - mathcomp-1 + - master diff --git a/.github/workflows/nix-action-coq-8.19.yml b/.github/workflows/nix-action-coq-8.19.yml new file mode 100644 index 0000000000..13c0bea002 --- /dev/null +++ b/.github/workflows/nix-action-coq-8.19.yml @@ -0,0 +1,721 @@ +jobs: + coq: + needs: [] + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target coq + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + coquelicot: + needs: + - coq + - mathcomp-ssreflect + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target coquelicot + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"coquelicot\" \\\n --dry-run 2>&1 >\ + \ /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\"\ + \ | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coquelicot" + mathcomp: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + - mathcomp-field + - mathcomp-character + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"mathcomp\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-field' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-field" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-character' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-character" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp" + mathcomp-algebra: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-algebra + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"mathcomp-algebra\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-algebra" + mathcomp-character: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + - mathcomp-field + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-character + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"mathcomp-character\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-field' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-field" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-character" + mathcomp-doc: + needs: + - coq + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-doc + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"mathcomp-doc\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-doc" + mathcomp-field: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-field + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"mathcomp-field\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-field" + mathcomp-fingroup: + needs: + - coq + - mathcomp-ssreflect + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-fingroup + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"mathcomp-fingroup\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-fingroup" + mathcomp-single: + needs: [] + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-single + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"mathcomp-single\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-single" + mathcomp-solvable: + needs: + - coq + - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-solvable + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"mathcomp-solvable\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-solvable" + mathcomp-ssreflect: + needs: + - coq + runs-on: ubuntu-latest + steps: + - name: Determine which commit to initially checkout + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ + \ }}\" >> $GITHUB_ENV\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.target_commit }} + - name: Determine which commit to test + run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ + \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ + \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ + \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ + \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ + \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ + \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ + \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + ref: ${{ env.tested_commit }} + - name: Cachix install + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixpkgs-unstable + - name: Cachix setup math-comp + uses: cachix/cachix-action@v12 + with: + authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} + extraPullNames: coq, coq-community + name: math-comp + - id: stepCheck + name: Checking presence of CI target mathcomp-ssreflect + run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ + \ bundle \"coq-8.19\" --argstr job \"mathcomp-ssreflect\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: coq' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "hierarchy-builder" + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-8.19" + --argstr job "mathcomp-ssreflect" +name: Nix CI for bundle coq-8.19 +'on': + pull_request: + paths: + - .github/workflows/nix-action-coq-8.19.yml + pull_request_target: + paths-ignore: + - .github/workflows/nix-action-coq-8.19.yml + types: + - opened + - synchronize + - reopened + push: + branches: + - mathcomp-1 + - master diff --git a/.github/workflows/nix-action-coq-master.yml b/.github/workflows/nix-action-coq-master.yml index 9f3f8a6e72..dd08abf5fb 100644 --- a/.github/workflows/nix-action-coq-master.yml +++ b/.github/workflows/nix-action-coq-master.yml @@ -1,7 +1,6 @@ jobs: - bignums: - needs: - - coq + coq: + needs: [] runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -38,21 +37,18 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target bignums + name: Checking presence of CI target coq run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"bignums\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" + \ bundle \"coq-master\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ + echo $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\" | sed \"\ + s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "bignums" - coq: - needs: [] + --argstr job "coq" + coq-elpi: + needs: + - coq runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -89,18 +85,23 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target coq + name: Checking presence of CI target coq-elpi run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"coq-elpi\" \\\n --dry-run 2>&1 >\ + \ /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\"\ + \ | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target + name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "coq" - coq-elpi: + - if: steps.stepCheck.outputs.status == 'built' + name: Building/fetching current CI target + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "coq-elpi" + coquelicot: needs: - coq + - mathcomp-ssreflect runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -137,27 +138,27 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target coq-elpi + name: Checking presence of CI target coquelicot run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"coq-elpi\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"coquelicot\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "coq" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-ssreflect" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq-elpi" - coqeal: + --argstr job "coquelicot" + hierarchy-builder: needs: - coq - - mathcomp-algebra - - bignums - - paramcoq - - multinomials - - mathcomp-real-closed + - coq-elpi runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -194,43 +195,33 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target coqeal + name: Checking presence of CI target hierarchy-builder run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"coqeal\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"hierarchy-builder\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "coq" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: bignums' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "bignums" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: paramcoq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "paramcoq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: multinomials' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "multinomials" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-real-closed' + name: 'Building/fetching previous CI target: coq-elpi' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-real-closed" + --argstr job "coq-elpi" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coqeal" - coquelicot: + --argstr job "hierarchy-builder" + mathcomp: needs: - coq - mathcomp-ssreflect + - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + - mathcomp-field + - mathcomp-character + - hierarchy-builder runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -267,11 +258,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target coquelicot + name: Checking presence of CI target mathcomp run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"coquelicot\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"mathcomp\" \\\n --dry-run 2>&1 >\ + \ /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"built:\"\ + \ | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" @@ -280,14 +271,40 @@ jobs: name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-field' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-field" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-character' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-character" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coquelicot" - deriving: + --argstr job "mathcomp" + mathcomp-algebra: needs: - coq - mathcomp-ssreflect + - mathcomp-fingroup + - hierarchy-builder runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -324,11 +341,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target deriving + name: Checking presence of CI target mathcomp-algebra run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"deriving\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"mathcomp-algebra\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" @@ -337,15 +354,27 @@ jobs: name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "deriving" - extructures: + --argstr job "mathcomp-algebra" + mathcomp-character: needs: - coq - mathcomp-ssreflect - - deriving + - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + - mathcomp-field + - hierarchy-builder runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -382,11 +411,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target extructures + name: Checking presence of CI target mathcomp-character run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"extructures\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"mathcomp-character\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" @@ -396,19 +425,33 @@ jobs: run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "mathcomp-ssreflect" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: deriving' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-fingroup" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-algebra' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-algebra" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-solvable' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-field' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-field" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "deriving" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "extructures" - fourcolor: + --argstr job "mathcomp-character" + mathcomp-doc: needs: - coq - - mathcomp-algebra - - mathcomp-ssreflect - - mathcomp-fingroup + - hierarchy-builder runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -445,37 +488,31 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target fourcolor + name: Checking presence of CI target mathcomp-doc run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"fourcolor\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"mathcomp-doc\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "coq" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "fourcolor" - gaia: + --argstr job "mathcomp-doc" + mathcomp-field: needs: - coq - mathcomp-ssreflect - - mathcomp-algebra - mathcomp-fingroup + - mathcomp-algebra + - mathcomp-solvable + - hierarchy-builder runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -512,11 +549,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target gaia + name: Checking presence of CI target mathcomp-field run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"gaia\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"mathcomp-field\" \\\n --dry-run 2>&1\ + \ > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep \"\ + built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" @@ -525,25 +562,30 @@ jobs: name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "mathcomp-ssreflect" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: mathcomp-fingroup' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "mathcomp-fingroup" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: mathcomp-algebra' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "mathcomp-algebra" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' + name: 'Building/fetching previous CI target: mathcomp-solvable' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" + --argstr job "mathcomp-solvable" + - if: steps.stepCheck.outputs.status == 'built' + name: 'Building/fetching previous CI target: hierarchy-builder' + run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "gaia" - graph-theory: + --argstr job "mathcomp-field" + mathcomp-fingroup: needs: - coq - - mathcomp-algebra - - mathcomp-finmap - - mathcomp-fingroup - - fourcolor + - mathcomp-ssreflect - hierarchy-builder runs-on: ubuntu-latest steps: @@ -581,31 +623,19 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target graph-theory + name: Checking presence of CI target mathcomp-fingroup run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"graph-theory\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"mathcomp-fingroup\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "coq" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: fourcolor' + name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "fourcolor" + --argstr job "mathcomp-ssreflect" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" @@ -613,11 +643,9 @@ jobs: - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "graph-theory" - hierarchy-builder: - needs: - - coq - - coq-elpi + --argstr job "mathcomp-fingroup" + mathcomp-single: + needs: [] runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -654,32 +682,22 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target hierarchy-builder + name: Checking presence of CI target mathcomp-single run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"hierarchy-builder\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq-elpi' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq-elpi" + \ bundle \"coq-master\" --argstr job \"mathcomp-single\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "hierarchy-builder" - mathcomp: + --argstr job "mathcomp-single" + mathcomp-solvable: needs: - coq - mathcomp-ssreflect - mathcomp-fingroup - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - - mathcomp-character + - hierarchy-builder runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -716,11 +734,11 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp + name: Checking presence of CI target mathcomp-solvable run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"mathcomp-solvable\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" @@ -738,26 +756,17 @@ jobs: run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "mathcomp-algebra" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-character' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-character" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp" - mathcomp-abel: + --argstr job "mathcomp-solvable" + mathcomp-ssreflect: needs: - coq - - mathcomp-field - - mathcomp-real-closed + - hierarchy-builder runs-on: ubuntu-latest steps: - name: Determine which commit to initially checkout @@ -794,1266 +803,36 @@ jobs: extraPullNames: coq, coq-community name: math-comp - id: stepCheck - name: Checking presence of CI target mathcomp-abel + name: Checking presence of CI target mathcomp-ssreflect run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-abel\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" + \ bundle \"coq-master\" --argstr job \"mathcomp-ssreflect\" \\\n --dry-run\ + \ 2>&1 > /dev/null)\necho $nb_dry_run\necho status=$(echo $nb_dry_run | grep\ + \ \"built:\" | sed \"s/.*/built/\") >> $GITHUB_OUTPUT\n" - if: steps.stepCheck.outputs.status == 'built' name: 'Building/fetching previous CI target: coq' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "coq" - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-real-closed' + name: 'Building/fetching previous CI target: hierarchy-builder' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-real-closed" + --argstr job "hierarchy-builder" - if: steps.stepCheck.outputs.status == 'built' name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-abel" - mathcomp-algebra: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-algebra - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-algebra\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - mathcomp-analysis: - needs: - - coq - - mathcomp-classical - - mathcomp-field - - mathcomp-bigenough - - hierarchy-builder - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-analysis - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-analysis\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-classical' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-classical" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-bigenough" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-analysis" - mathcomp-bigenough: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-bigenough - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-bigenough\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-bigenough" - mathcomp-character: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-character - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-character\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-character" - mathcomp-classical: - needs: - - coq - - mathcomp-algebra - - mathcomp-finmap - - hierarchy-builder - - hierarchy-builder - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-classical - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-classical\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: hierarchy-builder' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "hierarchy-builder" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-classical" - mathcomp-doc: - needs: - - coq - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-doc - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-doc\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-doc" - mathcomp-field: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-field - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-field\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-field" - mathcomp-fingroup: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-fingroup - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-fingroup\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - mathcomp-finmap: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-finmap - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-finmap\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-finmap" - mathcomp-real-closed: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-field - - mathcomp-fingroup - - mathcomp-solvable - - mathcomp-bigenough - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-real-closed - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-real-closed\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-bigenough" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-real-closed" - mathcomp-single: - needs: [] - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-single - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-single\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-single" - mathcomp-solvable: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-solvable - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-solvable\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-solvable" - mathcomp-ssreflect: - needs: - - coq - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-ssreflect - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-ssreflect\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - mathcomp-tarjan: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-tarjan - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-tarjan\" \\\n --dry-run\ - \ 2>&1 > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo\ - \ $nb_dry_run | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-tarjan" - mathcomp-zify: - needs: - - coq - - mathcomp-algebra - - mathcomp-ssreflect - - mathcomp-fingroup - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target mathcomp-zify - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"mathcomp-zify\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-zify" - multinomials: - needs: - - coq - - mathcomp-ssreflect - - mathcomp-algebra - - mathcomp-finmap - - mathcomp-fingroup - - mathcomp-bigenough - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target multinomials - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"multinomials\" \\\n --dry-run 2>&1\ - \ > /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-finmap' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-finmap" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-bigenough' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-bigenough" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "multinomials" - odd-order: - needs: - - coq - - mathcomp-character - - mathcomp-ssreflect - - mathcomp-fingroup - - mathcomp-algebra - - mathcomp-solvable - - mathcomp-field - - mathcomp - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target odd-order - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"odd-order\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-character' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-character" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-fingroup' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-fingroup" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-algebra' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-algebra" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-solvable' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-solvable" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-field' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp-field" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "mathcomp" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "odd-order" - paramcoq: - needs: - - coq - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target paramcoq - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"paramcoq\" \\\n --dry-run 2>&1 >\ - \ /dev/null)\necho $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run\ - \ | grep \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "paramcoq" - reglang: - needs: - - coq - - mathcomp-ssreflect - runs-on: ubuntu-latest - steps: - - name: Determine which commit to initially checkout - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"target_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n echo \"target_commit=${{ github.event.pull_request.head.sha\ - \ }}\" >> $GITHUB_ENV\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.target_commit }} - - name: Determine which commit to test - run: "if [ ${{ github.event_name }} = \"push\" ]; then\n echo \"tested_commit=${{\ - \ github.sha }}\" >> $GITHUB_ENV\nelse\n merge_commit=$(git ls-remote ${{\ - \ github.event.repository.html_url }} refs/pull/${{ github.event.number }}/merge\ - \ | cut -f1)\n mergeable=$(git merge --no-commit --no-ff ${{ github.event.pull_request.base.sha\ - \ }} > /dev/null 2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n\ - \ if [ -z \"$merge_commit\" -o \"x$mergeable\" != \"x0\" ]; then\n echo\ - \ \"tested_commit=${{ github.event.pull_request.head.sha }}\" >> $GITHUB_ENV\n\ - \ else\n echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n fi\nfi\n" - - name: Git checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ env.tested_commit }} - - name: Cachix install - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixpkgs-unstable - - name: Cachix setup math-comp - uses: cachix/cachix-action@v12 - with: - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - extraPullNames: coq, coq-community - name: math-comp - - id: stepCheck - name: Checking presence of CI target reglang - run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ - \ bundle \"coq-master\" --argstr job \"reglang\" \\\n --dry-run 2>&1 > /dev/null)\n\ - echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ - \ \"built:\" | sed \"s/.*/built/\")\n" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: coq' - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "coq" - - if: steps.stepCheck.outputs.status == 'built' - name: 'Building/fetching previous CI target: mathcomp-ssreflect' run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" --argstr job "mathcomp-ssreflect" - - if: steps.stepCheck.outputs.status == 'built' - name: Building/fetching current CI target - run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "coq-master" - --argstr job "reglang" name: Nix CI for bundle coq-master 'on': pull_request: paths: - - .github/workflows/** + - .github/workflows/nix-action-coq-master.yml pull_request_target: + paths-ignore: + - .github/workflows/nix-action-coq-master.yml types: - opened - synchronize - reopened push: branches: + - mathcomp-1 - master - - hierarchy-builder diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f755d3e129..36e1c04577 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -411,11 +411,17 @@ mathcomp-dev_coq-8.16: extends: .docker-deploy-once mathcomp-dev_coq-8.17: - # to be replaced with .docker-deploy-once when 8.17.0 available + extends: .docker-deploy-once + +mathcomp-dev_coq-8.18: + extends: .docker-deploy-once + +mathcomp-dev_coq-8.19: + # to be replaced with .docker-deploy-once when 8.19.0 available extends: .docker-deploy -# mathcomp-dev_coq-8.18: # to uncomment when 8.18+rc1 available -# # to be replaced with .docker-deploy-once when 8.18.0 available +# mathcomp-dev_coq-8.20: # to uncomment when 8.20+rc1 available +# # to be replaced with .docker-deploy-once when 8.20.0 available # extends: .docker-deploy mathcomp-dev_coq-dev: diff --git a/.nix/config.nix b/.nix/config.nix index ac85fa3d2d..4fbccf8525 100644 --- a/.nix/config.nix +++ b/.nix/config.nix @@ -23,7 +23,7 @@ with builtins; with (import {}).lib; ## select an entry to build in the following `bundles` set ## defaults to "default" - default-bundle = "coq-8.16"; + default-bundle = "coq-8.18"; ## write one `bundles.name` attribute set per ## alternative configuration, the can be used to @@ -34,40 +34,43 @@ with builtins; with (import {}).lib; bundles = let master = [ - "mathcomp-finmap" "mathcomp-bigenough" - "mathcomp-abel" "multinomials" "mathcomp-real-closed" "coqeal" - "fourcolor" "odd-order" "gaia" "deriving" "mathcomp-zify" - "extructures" "mathcomp-classical" "mathcomp-analysis" "reglang" - "graph-theory" "coquelicot" "mathcomp-tarjan" + "coquelicot" + "interval" ]; common-bundles = listToAttrs (forEach master (p: { name = p; value.override.version = "master"; })) // { mathcomp-ssreflect.main-job = true; mathcomp-doc.job = true; + mathcomp-bigenough.job = false; + reglang.job = false; + deriving.job = false; }; in { - "coq-master".push-branches = [ "master" "hierarchy-builder" ]; + "coq-master".push-branches = [ "mathcomp-1" "master" ]; "coq-master".coqPackages = common-bundles // { coq.override.version = "master"; - bignums.override.version = "master"; - paramcoq.override.version = "master"; coq-elpi.override.version = "coq-master"; - hierarchy-builder.override.version = "coq-master"; + hierarchy-builder.override.version = "master"; + interval.job = false; }; - "coq-8.17".push-branches = [ "master" "hierarchy-builder" ]; + "coq-8.19".push-branches = [ "mathcomp-1" "master" ]; + "coq-8.19".coqPackages = common-bundles // { + coq.override.version = "8.19"; + interval.job = false; + }; + "coq-8.18".push-branches = [ "mathcomp-1" "master" ]; + "coq-8.18".coqPackages = common-bundles // { + coq.override.version = "8.18"; + }; + "coq-8.17".push-branches = [ "mathcomp-1" "master" ]; "coq-8.17".coqPackages = common-bundles // { coq.override.version = "8.17"; - coqeal.job = false; - mathcomp-classical.job = false; - mathcomp-analysis.job = false; - graph-theory.job = false; + vcfloat.job = false; }; - "coq-8.16".push-branches = [ "master" "hierarchy-builder" ]; + "coq-8.16".push-branches = [ "mathcomp-1" "master" ]; "coq-8.16".coqPackages = common-bundles // { coq.override.version = "8.16"; - }; - "coq-8.15".coqPackages = common-bundles // { - coq.override.version = "8.15"; + vcfloat.job = false; }; }; } diff --git a/.nix/coq-nix-toolbox.nix b/.nix/coq-nix-toolbox.nix index 3836be936e..2ca14687e8 100644 --- a/.nix/coq-nix-toolbox.nix +++ b/.nix/coq-nix-toolbox.nix @@ -1 +1 @@ -"8893994e8efdbbf72ec4e3eaf84ea676b77ef38f" +"dd771a5001cd955514f2462cad7cdd90377530e3" diff --git a/.nix/coq-overlays/extructures/default.nix b/.nix/coq-overlays/extructures/default.nix deleted file mode 100644 index 0b244e900a..0000000000 --- a/.nix/coq-overlays/extructures/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, mkCoqDerivation, coq, version ? null -, ssreflect -, deriving -}: - -(mkCoqDerivation { - pname = "extructures"; - owner = "arthuraa"; - - inherit version; - defaultVersion = with lib.versions; lib.switch [coq.coq-version ssreflect.version] [ - { cases = [(range "8.11" "8.16") (isGe "1.12.0") ]; out = "0.3.1"; } - { cases = [(range "8.11" "8.14") (isLe "1.12.0") ]; out = "0.3.0"; } - { cases = [(range "8.10" "8.12") (isLe "1.12.0") ]; out = "0.2.2"; } - ] null; - - releaseRev = v: "v${v}"; - - release."0.3.1".sha256 = "sha256-KcuG/11Yq5ACem4FyVnQqHKvy3tNK7hd0ir2SJzzMN0="; - release."0.3.0".sha256 = "sha256:14rm0726f1732ldds495qavg26gsn30w6dfdn36xb12g5kzavp38"; - release."0.2.2".sha256 = "sha256:1clzza73gccy6p6l95n6gs0adkqd3h4wgl4qg5l0qm4q140grvm7"; - - propagatedBuildInputs = [ ssreflect ]; - - meta = with lib; { - description = "Finite data structures with extensional reasoning"; - license = licenses.mit; - maintainers = [ maintainers.vbgl ]; - }; - -}).overrideAttrs (o: { - propagatedBuildInputs = o.propagatedBuildInputs - ++ lib.optional (lib.versionAtLeast o.version "0.3.0" || o.version == "dev") deriving; -}) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1eb160099a..77cbca9c05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,224 @@ # Changelog All notable changes to this project will be documented in this file. -Last releases: [[1.17.0] - 2023-05-09](#1170---2023-05-09), [[1.16.0] - 2023-02-01](#1160---2023-02-01), [[1.15.0] - 2022-06-30](#1150---2022-06-30), [[1.14.0] - 2022-01-19](#1140---2022-01-19), and [[1.13.0] - 2021-10-28](#1130---2021-10-28). +Last releases: [[1.19.0] - 2024-01-15](#1190---2024-01-15), [[1.18.0] - 2023-11-01](#1180---2023-11-01), [[1.17.0] - 2023-05-09](#1170---2023-05-09), [[1.16.0] - 2023-02-01](#1160---2023-02-01) and [[1.15.0] - 2022-06-30](#1150---2022-06-30). The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [1.19.0] - 2024-01-15 + +This release is compatible with Coq versions 8.15, 8.16, 8.17, 8.18, and 8.19. + +The contributors to this version are: +Reynald Affeldt, Pierre Pomeret-Coquot, Pierre Roux, Kazuhiko Sakaguchi + +### Added + +- in `finset.v` + + lemmas `big_set1E`, `big_imset_idem`. + +- in `order.v` + + lemmas `bigmin_mkcondl`, `bigmin_mkcondr`, `bigmax_mkcondl`, + `bigmax_mkcondr`, `bigmin_le_id`, `bigmax_ge_id`, `bigmin_eq_id`, + `bigmax_eq_id`, `bigminUl`, `bigminUr`, `bigmaxUl`, `bigmaxUr`, + `bigminIl`, `bigminIr`, `bigmaxIl`, `bigmaxIr`, `bigminD`, + `bigmaxD`, `bigminU`, `bigmaxU`, `bigmin_set1`, `bigmax_set1`, + `bigmin_imset`, `bigmax_imset`. + +### Changed + +- Notations declared in the `fun_scope` are now declared in the + `function_scope`. + +- in `finset.v` + + generalized lemmas `big_set0` and `big_set` from semigroups + to arbitrary binary operators + +- in `ssrnum.v` + + generalize `ler_sqrt` + + generalize `ler_psqrt` to use `nneg` instead of `pos` + +### Deprecated + +- in `ssrfun.v` + + notation scope `fun_scope`, use `function_scope` instead + +## [1.18.0] - 2023-11-01 + +This release is compatible with Coq versions 8.16, 8.17, and 8.18. + +The contributors to this version are: + +Reynald Affeldt, Sophie Bernard, Alessandro Bruni, Fernando Chu, Cyril Cohen, Josh Cohen, Hugo Deleye, Jason Gross, Pierre Jouvelot, Erik Martin-Dorel, Pierre Roux, Kazuhiko Sakaguchi, Julin Shaji, Enrico Tassi, Laurent Théry, Quentin Vermande + +### Added + +- in `ssrbool.v` + + lemma `relpre_trans` + +- in `ssrnat.v` + + lemma `addn_eq1` + +- in `seq.v` + + lemma `foldl_foldr` + + lemmas `find_pred0`, `find_predT` + + lemmas `allrel_revl`, `allrel_revr`, `allrel_rev2`, `eq_allrel_meml`, + `eq_allrel_memr`, `eq_allrel_mem2` + + lemmas `sumn_ncons`, `sumn_set_nth`, `sumn_set_nth_ltn`, + `sumn_set_nth0` + + lemma `rem_mem` + +- in `fintype.v` + + definitions `ordS`, `ord_pred` + + lemmas `ordS_subproof`, `ord_pred_subproof`, `ordSK`, `ord_predK`, + `ordS_bij`, `ordS_inj`, `ord_pred_bij`, `ord_pred_inj` + +- in `bigop.v` + + lemma `big_if` + + lemma `big_condT` + + lemmas `sum_nat_seq_eq0`, `sum_nat_seq_neq0`, `sum_nat_seq_eq1`, + `sum_nat_eq1`, `prod_nat_seq_eq0`, `prod_nat_seq_neq0`, + `prod_nat_seq_eq1`, `prod_nat_seq_neq1` + +- in `finset.v` + + lemmas `bigA_distr`, `subset_cons`, `subset_cons2`, `subset_catl`, + `subset_catr`, `subset_cat2`, `filter_subset`, `subset_filter`, + `map_subset`. + +- in `poly.v` + + multirule `coefE` + + lemmas `deg2_poly_canonical`, `deg2_poly_factor`, + `deg2_poly_root1`, `deg2_poly_root2`, + `FieldMonic.deg2_poly_canonical`, `FieldMonic.deg2_poly_factor`, + `FieldMonic.deg2_poly_root1`, `FieldMonic.deg2_poly_root2` + + lemmas `polyC_natr`, `char_poly` + +- in `ssralg.v` + + support for negative constant (like `-42`) in the `Number + Notation` in `ring_scope` + +- in `finalg.v` + + lemmas `card_finRing_gt1`, `card_finField_unit` + +- in `ssrnum.v` + + lemmas `NumClosed.deg2_poly_factor`, `NumClosed.deg2_poly_root1`, + `NumClosed.deg2_poly_root2`, `NumClosedMonic.deg2_poly_factor`, + `NumClosedMonic.deg2_poly_root1`, + `NumClosedMonic.deg2_poly_root2`, `Real.deg2_poly_min`, + `Real.deg2_poly_minE`, `Real.deg2_poly_gt0`, `Real.deg2_poly_ge0`, + `Real.deg2_poly_max`, `Real.deg2_poly_maxE`, `Real.deg2_poly_lt0`, + `Real.deg2_poly_le0`, `Real.deg2_poly_factor`, + `Real.deg2_poly_root1`, `Real.deg2_poly_root2`, + `Real.deg2_poly_noroot`, `Real.deg2_poly_gt0l`, + `Real.deg2_poly_gt0r`, `Real.deg2_poly_lt0m`, + `Real.deg2_poly_ge0l`, `Real.deg2_poly_ge0r`, + `Real.deg2_poly_le0m`, `Real.deg2_poly_lt0l`, + `Real.deg2_poly_lt0r`, `Real.deg2_poly_gt0m`, + `Real.deg2_poly_le0l`, `Real.deg2_poly_le0r`, + `Real.deg2_poly_ge0m`, `RealMonic.deg2_poly_min`, + `RealMonic.deg2_poly_minE`, `RealMonic.deg2_poly_gt0`, + `RealMonic.deg2_poly_ge0`, `RealMonic.deg2_poly_factor`, + `RealMonic.deg2_poly_root1`, `RealMonic.deg2_poly_root2`, + `RealMonic.deg2_poly_noroot`, `RealMonic.deg2_poly_gt0l`, + `RealMonic.deg2_poly_gt0r`, `RealMonic.deg2_poly_lt0m`, + `RealMonic.deg2_poly_ge0l`, `RealMonic.deg2_poly_ge0r`, + `RealMonic.deg2_poly_le0m`, `deg_le2_poly_delta_ge0`, + `deg_le2_poly_delta_le0`, `deg_le2_poly_ge0`, `deg_le2_poly_le0` + + lemmas `gerBl`, `gtrBl` + + added `Num.npos` and lemma `nposrE` + + added lemmas `ger0_le_norm`, `gtr0_le_norm`, `ler0_ge_norm` and `ltr0_ge_norm` + +- in `polydiv.v` + + lemmas `rmodp_id`, `rmodpN`, `rmodpB`, `rmodpZ`, `rmodp_sum`, + `rmodp_mulml`, `rmodpX`, `rmodp_compr` + +- in `zmodp.v` + + lemmas `add_1_Zp`, `add_Zp_1`, `sub_Zp_1` and `add_N1_Zp`. + +- in `cyclic.v` + + added lemma `units_Zp_cyclic` + +- in `qpoly.v` + + new file of `algebra` that defines the algebras `R[X]/

` and their theory. + + definitions `{poly_n R}`, `'nX^m`, `x.-lagrange`, `x.lagrange_n`, + `{poly %/ p }`, `'qX`, `irreducibleb`, `mk_monic, in_qpoly` + + lemmas `size_npoly`, `npolyP`, `coef_npolyp` `big_coef_npoly`, + `npolypK`, `coefn_sum` `npoly_enum_uniq`, `mem_npoly_enum`, + `card_npoly` `irreducibleP`, `dim_polyn` , `npolyXE`, `nth_npolyX`, + `npolyX_free`, `npolyX_full`, `npolyX_coords`, `coord npolyX`, + `npolyX_gen`, `lagrangeE`, `nth_lagrange`, `size_lagrange_`, `size_lagrange`, + `lagrange_sample`, `lagrange_free`, `lagrange_full`, `lagrange_coords`, + `lagrange_gen`, `monic_mk_monic`, `size_mk_monic_gt1`, `size_mk_monic_gt0`, + `mk_monic_neq0`, `size_mk_monic`, `poly_of_size_mod`, `in_qpoly0`, + `in_qpolyD`, `in_qpolyZ`, `card_monic_qpoly`, `in_qpoly1`, `in_qpolyM`, + `in_qpoly_small`, `qpolyC_proof`, `qpolyCE`, `qpolyC0`, + `qpoly_mul1z`, `qpoly_mulz1`, `qpoly_nontrivial`, `qpolyXE`, `mk_monic_X`, + `mk_monic_Xn`, `card_qpoly`, `qpoly_mulC`, `qpoly_mulA`, `qpoly_mul_addr`, + `qpoly_mul_addl`, `poly_of_qpoly_sum`, `poly_of_qpolyD`, `qpolyC_natr`, + `char_qpoly`, `poly_of_qpolyM`, `poly_of_qpolyX`, `qpolyCN`, + `qpolyC`, `qpolyCD`, `qpolyCM`, `qpolyC_is_rmorphism`, + `poly_of_qpolyZ`, `qpoly_mulVz`, `qpoly_mulzV`, `qpoly_intro_unit`, + `qpoly_inv_out`, `irreducible_poly_coprime` + +- in `qfpoly.v` + + new file of `field` that extends the algebras R[X]/

defined in `qpoly` + with the field when p is irreducible + + definitions `monic_irreducible_poly`, `{poly' %/ p with mi}`, + `primitive_poly`, `qlogp`, `plogp` + + lemmas `mk_monicE`, `coprimep_unit`, `qpoly_mulVp`, `qpoly_inv0`, + `qpoly_inv`, `in_qpoly_comp_horner`, `map_poly_div_inj`, + `map_fpoly_div_inj`, `card_qfpoly`, `card_qfpoly_gt1`, `primitive_polyP`, + `primitive_poly_in_qpoly_eq0`, `card_primitive_qpoly`, + `primitive_mi`, `qX_neq0` `qX_in_unit`, `dvdp_order`, `gX_order`, `gX_all`, + `qlogp_lt`, `qlogp_qX`, `qX_order_card`, `qX_order_dvd`, `qlogp0`, `qlogp1`, + `qlogp_eq0`, `qlogpD`, + `qX_exp_neq0`, `qX_exp_inj`, `powX_eq_mod`, `qX_expK`, `plogp_lt`, + `plogp_X`, `plogp0`, `plogp1`, `plogp_div_eq0`, `plogpD` + +### Changed + +- in `ssralg.v` + + implicits of `natr1` and `nat1r` + +### Renamed + +- in `order.v` + + `le_maxl` -> `ge_max` + + `le_maxr` -> `le_max` + + `lt_maxr` -> `lt_max` + + `lt_maxl` -> `gt_max` + + `lt_minr` -> `lt_min` + + `lt_minl` -> `gt_min` + + `le_minr` -> `le_min` + + `le_minl` -> `ge_min` + + `comparable_le_maxr` -> `comparable_le_max` + + `comparable_le_maxl` -> `comparable_ge_max` + + `comparable_lt_maxr` -> `comparable_lt_max` + + `comparable_lt_maxl` -> `comparable_gt_max` + + `comparable_lt_minl` -> `comparable_gt_min` + + `comparable_lt_minr` -> `comparable_lt_min` + + `comparable_le_minr` -> `comparable_le_min` + + `comparable_le_minl` -> `comparable_ge_min` + +- in `polydiv.v` + + `modp_mod` -> `modp_id` + +### Removed + +- in `ssrbool.v` + + `rel_of_simpl_rel` (use `rel_of_simpl`) + +- in `fintype.v` + + `enum_ordS` (use `enum_ordSl` instead) + +### Deprecated + +- in `ssrint.v` + + `mulrzDr` temporarily deprecated, use `mulrzDl_tmp` instead, + will eventually be renamed `mulrzDl` + + `mulrzDl` temporarily deprecated, use `mulrzDr_tmp` instead, + will eventually be renamed `mulrzDr` + ## [1.17.0] - 2023-05-09 This release is compatible with Coq versions 8.15, 8.16 and 8.17. diff --git a/CHANGELOG_UNRELEASED.md b/CHANGELOG_UNRELEASED.md index db976c4eab..9bbd2c33fb 100644 --- a/CHANGELOG_UNRELEASED.md +++ b/CHANGELOG_UNRELEASED.md @@ -12,6 +12,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed +- in `zmodp.v` + + simpler statement of `Fp_Zcast` + ### Renamed ### Removed diff --git a/INSTALL.md b/INSTALL.md index c3ec1f6fdc..7fd3e8e4b0 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -11,20 +11,20 @@ also available as OPAM packages. If you just installed OPAM version 2 you should proceed as follows: ``` opam --version # should print 2.x.y -opam init -n --comp=ocaml-base-compiler.4.05.0 +opam init -n --comp=ocaml-base-compiler.4.14.1 eval $(opam config env) ``` Once your OPAM environment is configured you can install any math-comp package via ``` opam repo add coq-released https://coq.inria.fr/opam/released -opam pin add -n coq -k version 8.12.0 +opam pin add -n coq -k version 8.18.0 opam install coq -j3 opam install coq-mathcomp-ssreflect -j3 ``` Replace `ssreflect` here by the package you want, the dependencies will be installed automatically. We recommend pinning a particular version of Coq -(we give `8.12.0` as an example, see `CHANGELOG.md` for the supported versions). +(we give `8.18.0` as an example, see `CHANGELOG.md` for the supported versions). To get the latest development version you need to execute the following: ``` opam repo add coq-extra-dev https://coq.inria.fr/opam/extra-dev @@ -79,9 +79,9 @@ this file `INSTALL.md`) and that you have OPAM installed and configured with the standard Coq repositories. First, we recommend pinning a particular version of Coq -(e.g. `8.12.0`): +(e.g. `8.18.0`): ``` -opam pin add -n coq -k version 8.12.0 +opam pin add -n coq -k version 8.18.0 ``` Then for each math-comp package, pin the `opam` file: diff --git a/coq-mathcomp-algebra.opam b/coq-mathcomp-algebra.opam index 518aff210a..a59a1e99fc 100644 --- a/coq-mathcomp-algebra.opam +++ b/coq-mathcomp-algebra.opam @@ -11,8 +11,45 @@ build: [ make "-C" "mathcomp/algebra" "-j" "%{jobs}%" ] install: [ make "-C" "mathcomp/algebra" "install" ] depends: [ "coq-mathcomp-fingroup" { = version } ] -tags: [ "keyword:algebra" "keyword:small scale reflection" "keyword:mathematical components" "keyword:odd order theorem" "logpath:mathcomp.algebra" ] -authors: [ "Jeremy Avigad <>" "Andrea Asperti <>" "Stephane Le Roux <>" "Yves Bertot <>" "Laurence Rideau <>" "Enrico Tassi <>" "Ioana Pasca <>" "Georges Gonthier <>" "Sidi Ould Biha <>" "Cyril Cohen <>" "Francois Garillot <>" "Alexey Solovyev <>" "Russell O'Connor <>" "Laurent Théry <>" "Assia Mahboubi <>" ] +tags: [ + "keyword:small scale reflection" + "keyword:mathematical components" + "keyword:algebra" + "keyword:algebraic structure hierarchies" + "keyword:archimedean field" + "keyword:floor" + "keyword:ceil" + "keyword:intervals" + "keyword:matrices" + "keyword:vectors" + "keyword:block matrices" + "keyword:determinant" + "keyword:Cramer rule" + "keyword:Vandermonde matrices" + "keyword:LUP decomposition" + "keyword:Gaussian elimination" + "keyword:matrix rank" + "keyword:eigen values" + "keyword:single variable polynomials" + "keyword:bivariate polynomials" + "keyword:polynomial division" + "keyword:integers" + "keyword:rational numbers" + "keyword:semi rings" + "keyword:rings" + "keyword:left algebra" + "keyword:left module" + "keyword:unit rings" + "keyword:field" + "keyword:algebraically closed field" + "keyword:additive morphisms" + "keyword:ring morphisms" + "keyword:finite dimensional vector spaces" + "keyword:complex numbers" + "keyword:square root" + "logpath:mathcomp.algebra" +] +authors: [ "The Mathematical Components team" ] synopsis: "Mathematical Components Library on Algebra" description: """ diff --git a/coq-mathcomp-character.opam b/coq-mathcomp-character.opam index 3a071241d9..1873055e54 100644 --- a/coq-mathcomp-character.opam +++ b/coq-mathcomp-character.opam @@ -11,8 +11,14 @@ build: [ make "-C" "mathcomp/character" "-j" "%{jobs}%" ] install: [ make "-C" "mathcomp/character" "install" ] depends: [ "coq-mathcomp-field" { = version } ] -tags: [ "keyword:algebra" "keyword:character" "keyword:small scale reflection" "keyword:mathematical components" "keyword:odd order theorem" "logpath:mathcomp.character" ] -authors: [ "Jeremy Avigad <>" "Andrea Asperti <>" "Stephane Le Roux <>" "Yves Bertot <>" "Laurence Rideau <>" "Enrico Tassi <>" "Ioana Pasca <>" "Georges Gonthier <>" "Sidi Ould Biha <>" "Cyril Cohen <>" "Francois Garillot <>" "Alexey Solovyev <>" "Russell O'Connor <>" "Laurent Théry <>" "Assia Mahboubi <>" ] +tags: [ + "keyword:small scale reflection" + "keyword:mathematical components" + "keyword:algebra" + "keyword:character" + "logpath:mathcomp.character" +] +authors: [ "The Mathematical Components team" ] synopsis: "Mathematical Components Library on character theory" description:""" diff --git a/coq-mathcomp-field.opam b/coq-mathcomp-field.opam index 10ab51276e..0ae3242f1e 100644 --- a/coq-mathcomp-field.opam +++ b/coq-mathcomp-field.opam @@ -11,8 +11,14 @@ build: [ make "-C" "mathcomp/field" "-j" "%{jobs}%" ] install: [ make "-C" "mathcomp/field" "install" ] depends: [ "coq-mathcomp-solvable" { = version } ] -tags: [ "keyword:algebra" "keyword:field" "keyword:small scale reflection" "keyword:mathematical components" "keyword:odd order theorem" "logpath:mathcomp.field" ] -authors: [ "Jeremy Avigad <>" "Andrea Asperti <>" "Stephane Le Roux <>" "Yves Bertot <>" "Laurence Rideau <>" "Enrico Tassi <>" "Ioana Pasca <>" "Georges Gonthier <>" "Sidi Ould Biha <>" "Cyril Cohen <>" "Francois Garillot <>" "Alexey Solovyev <>" "Russell O'Connor <>" "Laurent Théry <>" "Assia Mahboubi <>" ] +tags: [ + "keyword:small scale reflection" + "keyword:mathematical components" + "keyword:algebra" + "keyword:field" + "logpath:mathcomp.field" +] +authors: [ "The Mathematical Components team" ] synopsis: "Mathematical Components Library on Fields" description:""" diff --git a/coq-mathcomp-fingroup.opam b/coq-mathcomp-fingroup.opam index c10426d8f8..aa3814dc4f 100644 --- a/coq-mathcomp-fingroup.opam +++ b/coq-mathcomp-fingroup.opam @@ -11,8 +11,13 @@ build: [ make "-C" "mathcomp/fingroup" "-j" "%{jobs}%" ] install: [ make "-C" "mathcomp/fingroup" "install" ] depends: [ "coq-mathcomp-ssreflect" { = version } ] -tags: [ "keyword:finite groups" "keyword:small scale reflection" "keyword:mathematical components" "keyword:odd order theorem" "logpath:mathcomp.fingroup" ] -authors: [ "Jeremy Avigad <>" "Andrea Asperti <>" "Stephane Le Roux <>" "Yves Bertot <>" "Laurence Rideau <>" "Enrico Tassi <>" "Ioana Pasca <>" "Georges Gonthier <>" "Sidi Ould Biha <>" "Cyril Cohen <>" "Francois Garillot <>" "Alexey Solovyev <>" "Russell O'Connor <>" "Laurent Théry <>" "Assia Mahboubi <>" ] +tags: [ + "keyword:small scale reflection" + "keyword:mathematical components" + "keyword:finite groups" + "logpath:mathcomp.fingroup" +] +authors: [ "The Mathematical Components team" ] synopsis: "Mathematical Components Library on finite groups" description: """ diff --git a/coq-mathcomp-solvable.opam b/coq-mathcomp-solvable.opam index 94efbb2702..640c3e7270 100644 --- a/coq-mathcomp-solvable.opam +++ b/coq-mathcomp-solvable.opam @@ -11,8 +11,13 @@ build: [ make "-C" "mathcomp/solvable" "-j" "%{jobs}%" ] install: [ make "-C" "mathcomp/solvable" "install" ] depends: [ "coq-mathcomp-algebra" { = version } ] -tags: [ "keyword:finite groups" "keyword:Feit Thompson theorem" "keyword:small scale reflection" "keyword:mathematical components" "keyword:odd order theorem" "logpath:mathcomp.solvable" ] -authors: [ "Jeremy Avigad <>" "Andrea Asperti <>" "Stephane Le Roux <>" "Yves Bertot <>" "Laurence Rideau <>" "Enrico Tassi <>" "Ioana Pasca <>" "Georges Gonthier <>" "Sidi Ould Biha <>" "Cyril Cohen <>" "Francois Garillot <>" "Alexey Solovyev <>" "Russell O'Connor <>" "Laurent Théry <>" "Assia Mahboubi <>" ] +tags: [ + "keyword:small scale reflection" + "keyword:mathematical components" + "keyword:finite groups" + "logpath:mathcomp.solvable" +] +authors: [ "The Mathematical Components team" ] synopsis: "Mathematical Components Library on finite groups (II)" diff --git a/coq-mathcomp-ssreflect.opam b/coq-mathcomp-ssreflect.opam index 871af14307..cca5f5fea1 100644 --- a/coq-mathcomp-ssreflect.opam +++ b/coq-mathcomp-ssreflect.opam @@ -9,10 +9,30 @@ license: "CECILL-B" build: [ make "-C" "mathcomp/ssreflect" "-j" "%{jobs}%" ] install: [ make "-C" "mathcomp/ssreflect" "install" ] -depends: [ "coq" { ((>= "8.15" & < "8.18~") | (= "dev"))} ] +depends: [ "coq" { ((>= "8.15" & < "8.20~") | (= "dev"))} ] -tags: [ "keyword:small scale reflection" "keyword:mathematical components" "keyword:odd order theorem" "logpath:mathcomp.ssreflect" ] -authors: [ "Jeremy Avigad <>" "Andrea Asperti <>" "Stephane Le Roux <>" "Yves Bertot <>" "Laurence Rideau <>" "Enrico Tassi <>" "Ioana Pasca <>" "Georges Gonthier <>" "Sidi Ould Biha <>" "Cyril Cohen <>" "Francois Garillot <>" "Alexey Solovyev <>" "Russell O'Connor <>" "Laurent Théry <>" "Assia Mahboubi <>" ] +tags: [ + "keyword:small scale reflection" + "keyword:mathematical components" + "keyword:bigop" + "keyword:big operators" + "keyword:biomial coefficient" + "keyword:integer division theory" + "keyword:finite sets" + "keyword:functions with finite domain" + "keyword:finite graphs" + "keyword:quotient types" + "keyword:order theory" + "keyword:partial order" + "keyword:lattices" + "keyword:lists" + "keyword:ordering and sorting lists" + "keyword:prime numbers" + "keyword:tuples" + "keyword:bounded lists" + "logpath:mathcomp.ssreflect" +] +authors: [ "The Mathematical Components team" ] synopsis: "Small Scale Reflection" description: """ diff --git a/etc/utils/builddoc_lib.sh b/etc/utils/builddoc_lib.sh index 58c53f0fa0..5cfddc8f34 100644 --- a/etc/utils/builddoc_lib.sh +++ b/etc/utils/builddoc_lib.sh @@ -44,12 +44,17 @@ sed -r -e ' /\(\*\*/,/\*\*\)/s/\[/#[#/g; /\(\*\*/,/\*\*\)/s/]/#]#/g; - # only in 8.4 - # /\(\*\*/,/\*\*\)/s/\_/#\_#/g; - # the lexer glues sharp with other symbols - /\(\*\*/,/\*\*\)/s/([^A-Za-z0-9 ])#\[#/\1 #[#/g; - /\(\*\*/,/\*\*\)/s/([^A-Za-z0-9 ])#]#/\1 #]#/g; + /\(\*\*/,/\*\*\)/s/([^`A-Za-z0-9 ])#\[#/\1 #[#/g; + /\(\*\*/,/\*\*\)/s/([^`A-Za-z0-9 ])#]#/\1 #]#/g; + ' | + +sed -r -e ' + # quote a few things + /\(\*\*/,/\*\*\)/s/<>/#>>#/g; + /\(\*\*/,/\*\*\)/s/-->/#-->#/g; + /\(\*\*/,/\*\*\)/s/_/#_#/g; ' | sed -r -e ' @@ -62,6 +67,44 @@ sed -r -e ' done } +postprocess_html() { +# post processing +for f in htmldoc/*.html; do +sed -r -i -e ' + # line end spaces + s/[ ]*$//; + ' $f +sed -r -i -e ' + # read the whole file into the pattern space + # :a is the label, N glues the current line; b branches + # to a if not EOF + :a; N; $!ba; + + # extra blank line + s/\n/

/g; + s/
<\/div>//g; + + # weird underscore + s/ /_/g; + + # putting back underscore + s/#\_#/\_/g; + s/#\_/\_/g; + + # avoid << and >> being interpretet as HTML tags + s/<>/\>\>/g; + + + # abundance of
+ s/\n //g; + + s/\n\n\n+/\n\n/g; + s/\n\n<\/li>/\n<\/li>/g; + ' $f +done +} + # example invocation: # MAKEDOT=../etc/utils/ PATH=$COQBIN:$PATH MANGLEDOT=touch COQDOCOPTS="-R . mathcomp" \ # build_doc */*.v diff --git a/mathcomp/Make b/mathcomp/Make index 3e8f02ee18..0cb6ef08c9 100644 --- a/mathcomp/Make +++ b/mathcomp/Make @@ -10,6 +10,7 @@ algebra/mxpoly.v algebra/polydiv.v algebra/poly.v algebra/polyXY.v +algebra/qpoly.v algebra/rat.v algebra/ring_quotient.v algebra/ssralg.v @@ -36,6 +37,7 @@ field/falgebra.v field/fieldext.v field/finfield.v field/galois.v +field/qfpoly.v field/separable.v fingroup/action.v fingroup/all_fingroup.v @@ -102,3 +104,6 @@ ssreflect/tuple.v -arg -w -arg +undeclared-scope -arg -w -arg +deprecated-hint-without-locality -arg -w -arg +deprecated-hint-rewrite-without-locality +-arg -w -arg -opaque-let +-arg -w -arg -argument-scope-delimiter +-arg -w -arg -overwriting-delimiting-key diff --git a/mathcomp/Makefile.common b/mathcomp/Makefile.common index 2548614ff2..c41819e716 100644 --- a/mathcomp/Makefile.common +++ b/mathcomp/Makefile.common @@ -159,6 +159,8 @@ doc: __always__ Makefile.coq -g --utf8 -R . mathcomp \ --parse-comments \ --multi-index $(COQFILES) -d htmldoc + . ../etc/utils/builddoc_lib.sh; \ + cd _build_doc && postprocess_html cp ../etc/artwork/coqdoc.css _build_doc/htmldoc doc-clean: diff --git a/mathcomp/_CoqProject b/mathcomp/_CoqProject index 84c2e2fb89..daaee090e8 100644 --- a/mathcomp/_CoqProject +++ b/mathcomp/_CoqProject @@ -8,3 +8,6 @@ -arg -w -arg +non-primitive-record -arg -w -arg +undeclared-scope -arg -w -arg +deprecated-hint-rewrite-without-locality +-arg -w -arg -opaque-let +-arg -w -arg -argument-scope-delimiter +-arg -w -arg -overwriting-delimiting-key diff --git a/mathcomp/algebra/Make b/mathcomp/algebra/Make index aedff19138..4f58372495 100644 --- a/mathcomp/algebra/Make +++ b/mathcomp/algebra/Make @@ -10,6 +10,7 @@ mxpoly.v polydiv.v poly.v polyXY.v +qpoly.v rat.v ring_quotient.v ssralg.v @@ -28,3 +29,6 @@ zmodp.v -arg -w -arg +undeclared-scope -arg -w -arg +deprecated-hint-without-locality -arg -w -arg +deprecated-hint-rewrite-without-locality +-arg -w -arg -opaque-let +-arg -w -arg -argument-scope-delimiter +-arg -w -arg -overwriting-delimiting-key diff --git a/mathcomp/algebra/all_algebra.v b/mathcomp/algebra/all_algebra.v index a937b0c6d4..4c5dc9aa46 100644 --- a/mathcomp/algebra/all_algebra.v +++ b/mathcomp/algebra/all_algebra.v @@ -5,6 +5,7 @@ Require Export countalg. Require Export poly. Require Export polydiv. Require Export polyXY. +Require Export qpoly. Require Export ssrint. Require Export rat. Require Export intdiv. diff --git a/mathcomp/algebra/finalg.v b/mathcomp/algebra/finalg.v index 20c8ebd3fe..2a8a963ae6 100644 --- a/mathcomp/algebra/finalg.v +++ b/mathcomp/algebra/finalg.v @@ -1626,12 +1626,19 @@ Export UnitRing.Exports UnitsGroupExports ComUnitRing.Exports. Export IntegralDomain.Exports Field.Exports DecField.Exports. Export Lmodule.Exports Lalgebra.Exports Algebra.Exports UnitAlgebra.Exports. +Lemma card_finRing_gt1 (R : finRingType) : 1 < #|R|. +Proof. by rewrite (cardD1 0) (cardD1 1) !inE GRing.oner_neq0. Qed. + Notation "{ 'unit' R }" := (unit_of (Phant R)) (at level 0, format "{ 'unit' R }") : type_scope. Prenex Implicits FinRing.uval. Notation "''U'" := (unit_action _) (at level 8) : action_scope. Notation "''U'" := (unit_groupAction _) (at level 8) : groupAction_scope. +Lemma card_finField_unit (F : finFieldType) : #|[set: {unit F}]| = #|F|.-1. +by rewrite -(cardC1 0) cardsT card_sub; apply: eq_card => x; rewrite GRing.unitfE. +Qed. + (* Finite Algebraic structure for bool *) Canonical bool_finZmodType := Eval hnf in [finZmodType of bool]. diff --git a/mathcomp/algebra/matrix.v b/mathcomp/algebra/matrix.v index ffea0c35cb..7f03868f78 100644 --- a/mathcomp/algebra/matrix.v +++ b/mathcomp/algebra/matrix.v @@ -35,8 +35,8 @@ From mathcomp Require Import div prime binomial ssralg finalg zmodp countalg. (* map_mx f A == the pointwise image of A by f, i.e., the matrix Af *) (* congruent to A with Af i j = f (A i j) for all i and j. *) (* map2_mx f A B == the pointwise image of A and B by f, i.e., the matrix *) -(* ABf congruent to A with ABf i j = f (A i j) for all i *) -(* and j. *) +(* ABf congruent to A with ABf i j = f (A i j) (B i j) *) +(* for all i and j. *) (* A^T == the matrix transpose of A. *) (* row i A == the i'th row of A (this is a row vector). *) (* col j A == the j'th column of A (a column vector). *) @@ -120,7 +120,7 @@ From mathcomp Require Import div prime binomial ssralg finalg zmodp countalg. (* A *m B == the matrix product of A and B; the width of A must be *) (* equal to the height of B. *) (* a%:M == the scalar matrix with a's on the main diagonal; in *) -(* particular 1%:M denotes the identity matrix, and is is *) +(* particular 1%:M denotes the identity matrix, and is *) (* equal to 1%R when n is of the form n'.+1 (e.g., n >= 1). *) (* is_scalar_mx A <=> A is a scalar matrix (A = a%:M for some A). *) (* diag_mx d == the diagonal matrix whose main diagonal is d : 'rV_n. *) diff --git a/mathcomp/algebra/poly.v b/mathcomp/algebra/poly.v index 9e8612fa57..c284130a4f 100644 --- a/mathcomp/algebra/poly.v +++ b/mathcomp/algebra/poly.v @@ -31,6 +31,7 @@ From mathcomp Require Import div ssralg countalg binomial. (* p`_i == the coefficient of 'X^i in p; this is in fact just *) (* the ring_scope notation generic seq-indexing using *) (* nth 0%R, combined with the polyseq coercion. *) +(* *** The multi-rule coefE simplifies p`_i *) (* coefp i == the linear function p |-> p`_i (self-exapanding). *) (* size p == 1 + the degree of p, or 0 if p = 0 (this is the *) (* generic seq function combined with polyseq). *) @@ -99,6 +100,10 @@ From mathcomp Require Import div ssralg countalg binomial. (* C - constant polynomial (as in polyseqC : a%:P = nseq (a != 0) a). *) (* X - the polynomial variable 'X (as in coefX : 'X`_i = (i == 1%N)). *) (* Xn - power of 'X (as in monicXn : monic 'X^n). *) +(* *) +(* Pdeg2.Field (exported by the present library) : theory of the degree 2 *) +(* polynomials. *) +(* Pdeg2.FieldMonic : theory of Pdeg2.Field specialized to monic polynomials. *) (******************************************************************************) Set Implicit Arguments. @@ -635,6 +640,16 @@ Canonical polyC_rmorphism := AddRMorphism polyC_multiplicative. Lemma polyC_exp n : {morph polyC : c / c ^+ n}. Proof. exact: rmorphXn. Qed. +Lemma polyC_natr n : n%:R%:P = n%:R :> {poly R}. +Proof. by rewrite rmorph_nat. Qed. + +Lemma char_poly : [char {poly R}] =i [char R]. +Proof. +move=> p; rewrite !inE; congr (_ && _). +apply/eqP/eqP=> [/(congr1 val) /=|]; last by rewrite -polyC_natr => ->. +by rewrite polyseq0 -polyC_natr polyseqC; case: eqP. +Qed. + Lemma size_exp_leq p n : size (p ^+ n) <= ((size p).-1 * n).+1. Proof. elim: n => [|n IHn]; first by rewrite size_poly1. @@ -2369,6 +2384,14 @@ Qed. End Surgery. +Definition coefE := + (coef0, coef1, coefC, coefX, coefXn, coef_sumMXn, + coefZ, coefMC, coefCM, coefXnM, coefMXn, coefXM, coefMX, coefMNn, coefMn, + coefN, coefB, coefD, coef_even_poly, coef_odd_poly, + coef_take_poly, coef_drop_poly, coef_cons, coef_Poly, coef_poly, + coef_deriv, coef_nderivn, coef_derivn, coef_map, coef_sum, + coef_comp_poly_Xn, coef_comp_poly). + Section PolynomialComRing. Variable R : comRingType. @@ -2700,13 +2723,10 @@ Lemma size_prod_seq_eq1 (I : eqType) (s : seq I) (P : pred I) (F : I -> {poly R} reflect (forall i, P i && (i \in s) -> size (F i) = 1%N) (size (\prod_(i <- s | P i) F i) == 1%N). Proof. -have -> : (size (\prod_(i <- s | P i) F i) == 1%N) = - (all [pred i | P i ==> (size (F i) == 1%N)] s). - elim: s => [|a s IHs /=]; first by rewrite big_nil size_poly1. - by rewrite big_cons; case: (P a) => //=; rewrite size_mul_eq1 IHs. -apply: (iffP allP) => /= [/(_ _ _)/implyP /(_ _)/eqP|] sF_eq1 i. - by move=> /andP[Pi si]; rewrite sF_eq1. -by move=> si; apply/implyP => Pi; rewrite sF_eq1 ?Pi. +rewrite (big_morph _ (id1:=true) size_mul_eq1) ?size_polyC ?oner_neq0//. +rewrite big_all_cond; apply/(iffP allP). + by move=> h i /andP[Pi ins]; apply/eqP/(implyP (h i ins) Pi). +by move=> h i ins; apply/implyP => Pi; rewrite h ?Pi. Qed. Lemma size_prod_eq1 (I : finType) (P : pred I) (F : I -> {poly R}) : @@ -3069,6 +3089,130 @@ Definition prim_rootP := prim_rootP. End UnityRootTheory. +Module Export Pdeg2. + +Module Export Field. + +Section Pdeg2Field. +Variable F : fieldType. +Hypothesis nz2 : 2 != 0 :> F. + +Variable p : {poly F}. +Hypothesis degp : size p = 3%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let pneq0 : p != 0. Proof. by rewrite -size_poly_gt0 degp. Qed. +Let aneq0 : a != 0. +Proof. by move: pneq0; rewrite -lead_coef_eq0 lead_coefE degp. Qed. +Let a2neq0 : 2 * a != 0. Proof. by rewrite mulf_neq0. Qed. +Let sqa2neq0 : (2 * a) ^+ 2 != 0. Proof. exact: expf_neq0. Qed. + +Let aa4 : 4 * a * a = (2 * a)^+2. +Proof. by rewrite expr2 mulrACA mulrA -natrM. Qed. + +Let splitr (x : F) : x = x / 2 + x / 2. +Proof. +by apply: (mulIf nz2); rewrite -mulrDl mulfVK// mulr_natr mulr2n. +Qed. + +Let pE : p = a *: 'X^2 + b *: 'X + c%:P. +Proof. +apply/polyP => + /[!coefE] => -[|[|[|i]]] /=; rewrite !Monoid.simpm//. +by rewrite nth_default// degp. +Qed. + +Let delta := b ^+ 2 - 4 * a * c. + +Lemma deg2_poly_canonical : + p = a *: (('X + (b / (2 * a))%:P)^+2 - (delta / (4 * a ^+ 2))%:P). +Proof. +rewrite pE sqrrD -!addrA scalerDr; congr +%R; rewrite addrA scalerDr; congr +%R. +- rewrite -mulrDr -polyCD -!mul_polyC mulrA mulrAC -polyCM. + by rewrite [a * _]mulrC mulrDl invfM -!mulrA mulVf// mulr1 -splitr. +- rewrite [a ^+ 2]expr2 mulrA aa4 -polyC_exp -polyCB expr_div_n -mulrBl subKr. + by rewrite scale_polyC mulrCA mulrACA aa4 mulrCA mulfV// mulr1. +Qed. + +Variable r : F. +Hypothesis r_sqrt_delta : r ^+ 2 = delta. + +Let r1 := (- b - r) / (2 * a). +Let r2 := (- b + r) / (2 * a). + +Lemma deg2_poly_factor : p = a *: ('X - r1%:P) * ('X - r2%:P). +Proof. +rewrite [p]deg2_poly_canonical//= -/a -/b -/c -/delta /r1 /r2. +rewrite ![(- b + _) * _]mulrDl 2!polyCD 2!opprD 2!addrA !mulNr !polyCN !opprK. +rewrite -scalerAl [in RHS]mulrC -subr_sqr -polyC_exp -[4]/(2 * 2)%:R natrM. +by rewrite -expr2 -exprMn [in RHS]exprMn exprVn r_sqrt_delta. +Qed. + +Lemma deg2_poly_root1 : root p r1. +Proof. +apply/factor_theorem. +by exists (a *: ('X - r2%:P)); rewrite deg2_poly_factor -!scalerAl mulrC. +Qed. + +Lemma deg2_poly_root2 : root p r2. +Proof. +apply/factor_theorem. +by exists (a *: ('X - r1%:P)); rewrite deg2_poly_factor -!scalerAl. +Qed. + +End Pdeg2Field. +End Field. + +Module FieldMonic. + +Section Pdeg2FieldMonic. +Variable F : fieldType. +Hypothesis nz2 : 2 != 0 :> F. + +Variable p : {poly F}. +Hypothesis degp : size p = 3%N. +Hypothesis monicp : p \is monic. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let a1 : a = 1. Proof. by move: (monicP monicp); rewrite lead_coefE degp. Qed. + +Let delta := b ^+ 2 - 4 * c. + +Lemma deg2_poly_canonical : p = (('X + (b / 2)%:P)^+2 - (delta / 4)%:P). +Proof. by rewrite [p]deg2_poly_canonical// -/a a1 scale1r expr1n !mulr1. Qed. + +Variable r : F. +Hypothesis r_sqrt_delta : r ^+ 2 = delta. + +Let r1 := (- b - r) / 2. +Let r2 := (- b + r) / 2. + +Lemma deg2_poly_factor : p = ('X - r1%:P) * ('X - r2%:P). +Proof. +by rewrite [p](@deg2_poly_factor _ _ _ _ r)// -/a a1 !mulr1 ?scale1r. +Qed. + +Lemma deg2_poly_root1 : root p r1. +Proof. +rewrite /r1 -[2]mulr1 -[X in 2 * X]a1. +by apply: deg2_poly_root1; rewrite // -/a a1 mulr1. +Qed. + +Lemma deg2_poly_root2 : root p r2. +Proof. +rewrite /r2 -[2]mulr1 -[X in 2 * X]a1. +by apply: deg2_poly_root2; rewrite // -/a a1 mulr1. +Qed. + +End Pdeg2FieldMonic. +End FieldMonic. +End Pdeg2. + Section DecField. Variable F : decFieldType. diff --git a/mathcomp/algebra/polydiv.v b/mathcomp/algebra/polydiv.v index 527928713f..506f0c4ba9 100644 --- a/mathcomp/algebra/polydiv.v +++ b/mathcomp/algebra/polydiv.v @@ -582,6 +582,11 @@ Proof. by move=> Hd; case: (monic_comreg mond)=> Hc Hr; rewrite /rmodp redivp_eq. Qed. +Lemma rmodp_id (p : {poly R}) : rmodp (rmodp p d) d = rmodp p d. +Proof. +by rewrite rmodp_small // ltn_rmodpN0 // monic_neq0. +Qed. + Lemma rmodpD p q : rmodp (p + q) d = rmodp p d + rmodp q d. Proof. rewrite [p in LHS]rdivp_eq [q in LHS]rdivp_eq addrACA -mulrDl. @@ -589,6 +594,32 @@ rewrite rmodp_addl_mul_small //; apply: (leq_ltn_trans (size_add _ _)). by rewrite gtn_max !ltn_rmodp // monic_neq0. Qed. +Lemma rmodpN p : rmodp (- p) d = - (rmodp p d). +Proof. +rewrite {1}(rdivp_eq p) opprD // -mulNr rmodp_addl_mul_small //. +by rewrite size_opp ltn_rmodp // monic_neq0. +Qed. + +Lemma rmodpB p q : rmodp (p - q) d = rmodp p d - rmodp q d. +Proof. by rewrite rmodpD rmodpN. Qed. + +Lemma rmodpZ a p : rmodp (a *: p) d = a *: (rmodp p d). +Proof. +case: (altP (a =P 0%R)) => [-> | cn0]; first by rewrite !scale0r rmod0p. +have -> : ((a *: p) = (a *: (rdivp p d)) * d + a *: (rmodp p d))%R. + by rewrite -scalerAl -scalerDr -rdivp_eq. +rewrite rmodp_addl_mul_small //. +rewrite -mul_polyC; apply: leq_ltn_trans (size_mul_leq _ _) _. + rewrite size_polyC cn0 addSn add0n /= ltn_rmodp. +by apply: monic_neq0. +Qed. + +Lemma rmodp_sum (I : Type) (r : seq I) (P : pred I) (F : I -> {poly R}) : + rmodp (\sum_(i <- r | P i) F i) d = (\sum_(i <- r | P i) (rmodp (F i) d)). +Proof. +by elim/big_rec2: _ => [|i p q _ <-]; rewrite ?(rmod0p, rmodpD). +Qed. + Lemma rmodp_mulmr p q : rmodp (p * (rmodp q d)) d = rmodp (p * q) d. Proof. by rewrite [q in RHS]rdivp_eq mulrDr rmodpD mulrA rmodp_mull add0r. @@ -639,6 +670,34 @@ Qed. End RingMonic. +Section ComRingMonic. + +Variable R : comRingType. +Implicit Types p q r : {poly R}. +Variable d : {poly R}. +Hypothesis mond : d \is monic. + +Lemma rmodp_mulml p q : rmodp (rmodp p d * q) d = rmodp (p * q) d. +Proof. by rewrite [in LHS]mulrC [in RHS]mulrC rmodp_mulmr. Qed. + +Lemma rmodpX p n : rmodp ((rmodp p d) ^+ n) d = rmodp (p ^+ n) d. +Proof. +elim: n => [|n IH]; first by rewrite !expr0. +rewrite !exprS -rmodp_mulmr // IH rmodp_mulmr //. +by rewrite mulrC rmodp_mulmr // mulrC. +Qed. + +Lemma rmodp_compr p q : rmodp (p \Po (rmodp q d)) d = (rmodp (p \Po q) d). +Proof. +elim/poly_ind: p => [|p c IH]; first by rewrite !comp_polyC !rmod0p. +rewrite !comp_polyD !comp_polyM addrC rmodpD //. + rewrite mulrC -rmodp_mulmr // IH rmodp_mulmr //. + rewrite !comp_polyX !comp_polyC. +by rewrite mulrC rmodp_mulmr // -rmodpD // addrC. +Qed. + +End ComRingMonic. + End RingMonic. Module Ring. @@ -1059,7 +1118,7 @@ Qed. Lemma ltn_modpN0 p q : q != 0 -> size (p %% q) < size q. Proof. by rewrite ltn_modp. Qed. -Lemma modp_mod p q : (p %% q) %% q = p %% q. +Lemma modp_id p q : (p %% q) %% q = p %% q. Proof. by have [->|qn0] := eqVneq q 0; rewrite ?modp0 // modp_small ?ltn_modp. Qed. @@ -2365,6 +2424,9 @@ End IDomainPseudoDivision. #[global] Hint Resolve eqpxx divp0 divp1 mod0p modp0 modp1 : core. #[global] Hint Resolve dvdp_mull dvdp_mulr dvdpp dvdp0 : core. +#[deprecated(since="mathcomp 2.1.0", note="Use modp_id instead.")] +Notation modp_mod := modp_id. + End CommonIdomain. Module Idomain. diff --git a/mathcomp/algebra/qpoly.v b/mathcomp/algebra/qpoly.v new file mode 100644 index 0000000000..a9d8563a55 --- /dev/null +++ b/mathcomp/algebra/qpoly.v @@ -0,0 +1,772 @@ +From mathcomp +Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq choice fintype tuple. +From mathcomp +Require Import bigop binomial finset finfun ssralg countalg finalg poly polydiv. +From mathcomp +Require Import perm fingroup matrix mxalgebra mxpoly vector countalg. + +(******************************************************************************) +(* This file defines the algebras R[X]/

and their theory. *) +(* It mimics the zmod file for polynomials *) +(* First, it defines polynomials of bounded size (equivalent of 'I_n), *) +(* gives it a structure of choice, finite and countable ring, ..., and *) +(* lmodule, when possible. *) +(* Internally, the construction uses poly_rV and rVpoly, but they should not *) +(* be exposed. *) +(* We provide two bases: the 'X^i and the lagrange polynomials. *) +(* {poly_n R} == the type of polynomial of size at most n *) +(* irreducibleb p == boolean decision procedure for irreducibility *) +(* of a bounded size polynomial over a finite idomain *) +(* Considering {poly_n F} over a field F, it is a vectType and *) +(* 'nX^i == 'X^i as an element of {poly_n R} *) +(* polynX == [tuple 'X^0, ..., 'X^(n - 1)], basis of {poly_n R} *) +(* x.-lagrange == lagrange basis of {poly_n R} wrt x : nat -> F *) +(* x.-lagrange_ i == the ith lagrange polynomial wrt the sampling points x *) +(* Second, it defines polynomials quotiented by a poly (equivalent of 'Z_p), *) +(* as bounded polynomial. As we are aiming to build a ring structure we need *) +(* the polynomial to be monic and of size greater than one. If it is not the *) +(* case we quotient by 'X *) +(* mk_monic p == the actual polynomial on which we quotient *) +(* if p is monic and dof size > 1 it is p otherwise 'X *) +(* {poly %/ p} == defined as {poly_(size (mk_poly p)).-1 R} on which *) +(* there is a ring structure *) +(* in_qpoly q == turn the polynomial q into an element of {poly %/ p} by *) +(* taking a modulo *) +(* 'qX == in_qpoly 'X *) +(* The last part that defines the field structure when the quotient is an *) +(* irreducible polynomial is defined in field/qfpoly *) +(******************************************************************************) + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Import GRing.Theory. +Import Pdiv.CommonRing. +Import Pdiv.RingMonic. +Import Pdiv.Field. +Import FinRing.Theory. +Local Open Scope ring_scope. + +Reserved Notation "'{poly_' n R }" + (at level 0, n at level 2, format "'{poly_' n R }"). +Reserved Notation "''nX^' i" (at level 3, i at level 2, format "''nX^' i"). +Reserved Notation "x .-lagrange" (at level 2, format "x .-lagrange"). +Reserved Notation "x .-lagrange_" (at level 2, format "x .-lagrange_"). +Reserved Notation "'qX" (at level 0). +Reserved Notation "{ 'poly' '%/' p }" + (at level 0, p at level 2, format "{ 'poly' '%/' p }"). + +Section poly_of_size_zmod. +Context {R : ringType}. +Implicit Types (phR : phant R) (n : nat). + +Section poly_of_size. +Variable (n : nat). + +Definition poly_of_size := + [qualify a p | size (p : {poly R}) <= n]. +Fact poly_of_size_key : pred_key poly_of_size. Proof. by []. Qed. +Canonical poly_of_size_keyd := KeyedQualifier poly_of_size_key. + +Lemma npoly_submod_closed : submod_closed poly_of_size. +Proof. +split=> [|x p q sp sq]; rewrite qualifE ?size_polyC ?eqxx//. +rewrite (leq_trans (size_add _ _)) // geq_max. +by rewrite (leq_trans (size_scale_leq _ _)). +Qed. + +Canonical npoly_opprPred := OpprPred npoly_submod_closed. +Canonical npoly_addrPred := AddrPred npoly_submod_closed. +Canonical npoly_zmodPred := ZmodPred npoly_submod_closed. +Canonical npoly_submodPred := SubmodPred npoly_submod_closed. + +End poly_of_size. + +Section npoly. + +Record npoly_of phR n : predArgType := NPoly_of { + polyn :> {poly R}; + _ : polyn \is a poly_of_size n +}. + +Variable (n : nat). + +Local Notation "'{poly_' n R }" := (@npoly_of (Phant R) n). + +Canonical npoly_subType := [subType for @polyn (Phant R) n]. + +Lemma npoly_is_a_poly_of_size (p : {poly_n R}) : val p \is a poly_of_size n. +Proof. by case: p. Qed. +Hint Resolve npoly_is_a_poly_of_size : core. + +Lemma size_npoly (p : {poly_n R}) : size p <= n. +Proof. exact: npoly_is_a_poly_of_size. Qed. +Hint Resolve size_npoly : core. + +Definition npoly_eqMixin := [eqMixin of {poly_n R} by <:]. +Canonical npoly_eqType := EqType {poly_n R} npoly_eqMixin. +Definition npoly_choiceMixin := [choiceMixin of {poly_n R} by <:]. +Canonical npoly_choiceType := ChoiceType {poly_n R} npoly_choiceMixin. +Definition npoly_zmodMixin := [zmodMixin of {poly_n R} by <:]. +Canonical npoly_zmodType := ZmodType {poly_n R} npoly_zmodMixin. +Definition npoly_lmodMixin := [lmodMixin of {poly_n R} by <:]. +Canonical npoly_lmodType := LmodType R {poly_n R} npoly_lmodMixin. + +Definition npoly_rV : {poly_n R} -> 'rV[R]_n := poly_rV \o val. +Definition rVnpoly : 'rV[R]_n -> {poly_n R} := + insubd (0 : {poly_n R}) \o rVpoly. +Arguments rVnpoly /. +Arguments npoly_rV /. + +Lemma npoly_rV_K : cancel npoly_rV rVnpoly. +Proof. +move=> p /=; apply/val_inj. +by rewrite val_insubd [_ \is a _]size_poly ?poly_rV_K. +Qed. +Lemma rVnpolyK : cancel rVnpoly npoly_rV. +Proof. by move=> p /=; rewrite val_insubd [_ \is a _]size_poly rVpolyK. Qed. +Hint Resolve npoly_rV_K rVnpolyK : core. + +Lemma npoly_vect_axiom : Vector.axiom n {poly_n R}. +Proof. by exists npoly_rV; [move=> ???; exact: linearP|exists rVnpoly]. Qed. + +Definition npoly_vect_mixin := VectMixin npoly_vect_axiom. +Canonical npoly_vect_type := VectType R {poly_n R} npoly_vect_mixin. + +End npoly. +End poly_of_size_zmod. + +Notation "'{poly_' n R }" := (npoly_of (Phant R) n) : type_scope. +Notation NPoly := (NPoly_of (Phant _)). +#[global] +Hint Resolve size_npoly npoly_is_a_poly_of_size : core. + +Definition npoly_countMixin (R : countRingType) n := + [countMixin of {poly_n R} by <:]. +Canonical npoly_countType (R : countRingType) n := + CountType {poly_n R} (@npoly_countMixin R n). +Canonical npoly_subCountType (R : countRingType) n := + [subCountType of {poly_n R}]. + +Section npoly_fin. +Variable (R : finRingType) (n : nat). + +Definition npoly_finMixin (R : finRingType) (n : nat) := + CanFinMixin (@npoly_rV_K [ringType of R] n). +Canonical npoly_finType (R : finRingType) n := + FinType {poly_n R} (@npoly_finMixin R n). +Canonical npoly_subFinType := [subFinType of {poly_n R}]. +End npoly_fin. + +Section npoly_theory. +Context (R : ringType) {n : nat}. + +Lemma polyn_is_linear : linear (@polyn _ _ _ : {poly_n R} -> _). +Proof. by []. Qed. +Canonical polyn_additive := Additive polyn_is_linear. +Canonical polyn_linear := Linear polyn_is_linear. + +Canonical npoly (E : nat -> R) : {poly_n R} := + @NPoly_of _ (Phant R) _ (\poly_(i < n) E i) (size_poly _ _). + +Fact size_npoly0 : size (0 : {poly R}) <= n. +Proof. by rewrite size_poly0. Qed. + +Definition npoly0 := NPoly (size_npoly0). + +Fact npolyp_key : unit. Proof. exact: tt. Qed. +Definition npolyp : {poly R} -> {poly_n R} := + locked_with npolyp_key (npoly \o (nth 0)). + +Definition npoly_of_seq := npolyp \o Poly. + +Lemma npolyP (p q : {poly_n R}) : nth 0 p =1 nth 0 q <-> p = q. +Proof. by split => [/polyP/val_inj|->]. Qed. + +Lemma coef_npolyp (p : {poly R}) i : (npolyp p)`_i = if i < n then p`_i else 0. +Proof. by rewrite /npolyp unlock /= coef_poly. Qed. + +Lemma big_coef_npoly (p : {poly_n R}) i : n <= i -> p`_i = 0. +Proof. +by move=> i_big; rewrite nth_default // (leq_trans _ i_big) ?size_npoly. +Qed. + +Lemma npolypK (p : {poly R}) : size p <= n -> npolyp p = p :> {poly R}. +Proof. +move=> spn; apply/polyP=> i; rewrite coef_npolyp. +by have [i_big|i_small] // := ltnP; rewrite nth_default ?(leq_trans spn). +Qed. + +Lemma coefn_sum (I : Type) (r : seq I) (P : pred I) + (F : I -> {poly_n R}) (k : nat) : + (\sum_(i <- r | P i) F i)`_k = \sum_(i <- r | P i) (F i)`_k. +Proof. by rewrite !raddf_sum //= coef_sum. Qed. + +End npoly_theory. +Arguments npoly {R} n E. +Arguments npolyp {R} n p. + +Section fin_npoly. + +Variable R : finRingType. +Variable n : nat. +Implicit Types p q : {poly_n R}. + +Definition npoly_enum : seq {poly_n R} := + if n isn't n.+1 then [:: npoly0 _] else + pmap insub [seq \poly_(i < n.+1) c (inord i) | c : (R ^ n.+1)%type]. + +Lemma npoly_enum_uniq : uniq npoly_enum. +Proof. +rewrite /npoly_enum; case: n=> [|k] //. +rewrite pmap_sub_uniq // map_inj_uniq => [|f g eqfg]; rewrite ?enum_uniq //. +apply/ffunP => /= i; have /(congr1 (fun p : {poly _} => p`_i)) := eqfg. +by rewrite !coef_poly ltn_ord inord_val. +Qed. + +Lemma mem_npoly_enum p : p \in npoly_enum. +Proof. +rewrite /npoly_enum; case: n => [|k] // in p *. + case: p => [p sp] /=. + by rewrite in_cons -val_eqE /= -size_poly_leq0 [size _ <= _]sp. +rewrite mem_pmap_sub; apply/mapP. +eexists [ffun i : 'I__ => p`_i]; first by rewrite mem_enum. +apply/polyP => i; rewrite coef_poly. +have [i_small|i_big] := ltnP; first by rewrite ffunE /= inordK. +by rewrite nth_default // 1?(leq_trans _ i_big) // size_npoly. +Qed. + +Lemma card_npoly : #|{poly_n R}| = (#|R| ^ n)%N. +Proof. +rewrite -(card_imset _ (can_inj (@npoly_rV_K _ _))) eq_cardT. + by rewrite -cardT /= card_mx mul1n. +by move=> v; apply/imsetP; exists (rVnpoly v); rewrite ?rVnpolyK //. +Qed. + +End fin_npoly. + +Section Irreducible. + +Variable R : finIdomainType. +Variable p : {poly R}. + +Definition irreducibleb := + ((1 < size p) && + [forall q : {poly_((size p).-1) R}, + (Pdiv.Ring.rdvdp q p)%R ==> (size q <= 1)])%N. + +Lemma irreducibleP : reflect (irreducible_poly p) irreducibleb. +Proof. +rewrite /irreducibleb /irreducible_poly. +apply: (iffP idP) => [/andP[sp /'forall_implyP /= Fp]|[sp Fpoly]]. + have sp_gt0 : size p > 0 by case: size sp. + have p_neq0 : p != 0 by rewrite -size_poly_eq0; case: size sp. + split => // q sq_neq1 dvd_qp; rewrite -dvdp_size_eqp // eqn_leq dvdp_leq //=. + apply: contraNT sq_neq1; rewrite -ltnNge => sq_lt_sp. + have q_small: (size q <= (size p).-1)%N by rewrite -ltnS prednK. + rewrite Pdiv.Idomain.dvdpE in dvd_qp. + have /= := Fp (NPoly q_small) dvd_qp. + rewrite leq_eqVlt ltnS => /orP[//|]; rewrite size_poly_leq0 => /eqP q_eq0. + by rewrite -Pdiv.Idomain.dvdpE q_eq0 dvd0p (negPf p_neq0) in dvd_qp. +have sp_gt0 : size p > 0 by case: size sp. +rewrite sp /=; apply/'forall_implyP => /= q. +rewrite -Pdiv.Idomain.dvdpE=> dvd_qp. +have [/eqP->//|/Fpoly/(_ dvd_qp)/eqp_size sq_eq_sp] := boolP (size q == 1%N). +by have := size_npoly q; rewrite sq_eq_sp -ltnS prednK ?ltnn. +Qed. + +End Irreducible. + +Section Vspace. + +Variable (K : fieldType) (n : nat). + +Lemma dim_polyn : \dim (fullv : {vspace {poly_n K}}) = n. +Proof. by rewrite [LHS]mxrank_gen mxrank1. Qed. + +Definition npolyX : n.-tuple {poly_n K} := [tuple npolyp n 'X^i | i < n]. +Notation "''nX^' i" := (tnth npolyX i). + +Lemma npolyXE (i : 'I_n) : 'nX^i = 'X^i :> {poly _}. +Proof. by rewrite tnth_map tnth_ord_tuple npolypK // size_polyXn. Qed. + +Lemma nth_npolyX (i : 'I_n) : npolyX`_i = 'nX^i. +Proof. by rewrite -tnth_nth. Qed. + +Lemma npolyX_free : free npolyX. +Proof. +apply/freeP=> u /= sum_uX_eq0 i; have /npolyP /(_ i) := sum_uX_eq0. +rewrite (@big_morph _ _ _ 0%R +%R) // coef_sum coef0. +rewrite (bigD1 i) ?big1 /= ?addr0 ?coefZ ?(nth_map 0%N) ?size_iota //. + by rewrite nth_npolyX npolyXE coefXn eqxx mulr1. +move=> j; rewrite -val_eqE /= => neq_ji. +by rewrite nth_npolyX npolyXE coefZ coefXn eq_sym (negPf neq_ji) mulr0. +Qed. + +Lemma npolyX_full : basis_of fullv npolyX. +Proof. +by rewrite basisEfree npolyX_free subvf size_map size_enum_ord dim_polyn /=. +Qed. + +Lemma npolyX_coords (p : {poly_n K}) i : coord npolyX i p = p`_i. +Proof. +rewrite [p in RHS](coord_basis npolyX_full) ?memvf // coefn_sum. +rewrite (bigD1 i) //= coefZ nth_npolyX npolyXE coefXn eqxx mulr1 big1 ?addr0//. +move=> j; rewrite -val_eqE => /= neq_ji. +by rewrite coefZ nth_npolyX npolyXE coefXn eq_sym (negPf neq_ji) mulr0. +Qed. + +Lemma npolyX_gen (p : {poly K}) : (size p <= n)%N -> + p = \sum_(i < n) p`_i *: 'nX^i. +Proof. +move=> sp; rewrite -[p](@npolypK _ n) //. +rewrite [npolyp _ _ in LHS](coord_basis npolyX_full) ?memvf //. +rewrite (@big_morph _ _ _ 0%R +%R) // !raddf_sum. +by apply: eq_bigr=> i _; rewrite npolyX_coords //= nth_npolyX npolyXE. +Qed. + +Section lagrange. + +Variables (x : nat -> K). + +Notation lagrange_def := (fun i :'I_n => + let k := i in let p := \prod_(j < n | j != k) ('X - (x j)%:P) + in (p.[x k]^-1)%:P * p). + +Fact lagrange_key : unit. Proof. exact: tt. Qed. + +Definition lagrange := locked_with lagrange_key + [tuple npolyp n (lagrange_def i) | i < n]. +Notation lagrange_ := (tnth lagrange). + +Hypothesis n_gt0 : (0 < n)%N. +Hypothesis x_inj : injective x. + +Let lagrange_def_sample (i j : 'I_n) : (lagrange_def i).[x j] = (i == j)%:R. +Proof. +clear n_gt0; rewrite hornerM hornerC; set p := (\prod_(_ < _ | _) _). +have [<-|neq_ij] /= := altP eqP. + rewrite mulVf // horner_prod; apply/prodf_neq0 => k neq_ki. + by rewrite hornerXsubC subr_eq0 inj_eq // eq_sym. +rewrite [X in _ * X]horner_prod (bigD1 j) 1?eq_sym //=. +by rewrite hornerXsubC subrr mul0r mulr0. +Qed. + +Let size_lagrange_def i : size (lagrange_def i) = n. +Proof. +rewrite size_Cmul; last first. + suff : (lagrange_def i).[x i] != 0. + by rewrite hornerE mulf_eq0 => /norP []. + by rewrite lagrange_def_sample ?eqxx ?oner_eq0. +rewrite size_prod /=; last first. + by move=> j neq_ji; rewrite polyXsubC_eq0. +rewrite (eq_bigr (fun=> (2 * 1)%N)); last first. + by move=> j neq_ji; rewrite size_XsubC. +rewrite -big_distrr /= sum1_card cardC1 card_ord /=. +by case: (n) {i} n_gt0 => ?; rewrite mul2n -addnn -addSn addnK. +Qed. + +Lemma lagrangeE i : lagrange_ i = lagrange_def i :> {poly _}. +Proof. +rewrite [lagrange]unlock tnth_map. +by rewrite [val _]npolypK tnth_ord_tuple // size_lagrange_def. +Qed. + +Lemma nth_lagrange (i : 'I_n) : lagrange`_i = lagrange_ i. +Proof. by rewrite -tnth_nth. Qed. + +Lemma size_lagrange_ i : size (lagrange_ i) = n. +Proof. by rewrite lagrangeE size_lagrange_def. Qed. + +Lemma size_lagrange : size lagrange = n. +Proof. by rewrite size_tuple. Qed. + +Lemma lagrange_sample (i j : 'I_n) : (lagrange_ i).[x j] = (i == j)%:R. +Proof. by rewrite lagrangeE lagrange_def_sample. Qed. + +Lemma lagrange_free : free lagrange. +Proof. +apply/freeP=> lambda eq_l i. +have /(congr1 (fun p : {poly__ _} => p.[x i])) := eq_l. +rewrite (@big_morph _ _ _ 0%R +%R) // horner_sum horner0. +rewrite (bigD1 i) // big1 => [|j /= /negPf ji] /=; +by rewrite ?hornerE nth_lagrange lagrange_sample ?eqxx ?ji ?mulr1 ?mulr0. +Qed. + +Lemma lagrange_full : basis_of fullv lagrange. +Proof. +by rewrite basisEfree lagrange_free subvf size_lagrange dim_polyn /=. +Qed. + +Lemma lagrange_coords (p : {poly_n K}) i : coord lagrange i p = p.[x i]. +Proof. +rewrite [p in RHS](coord_basis lagrange_full) ?memvf //. +rewrite (@big_morph _ _ _ 0%R +%R) // horner_sum. +rewrite (bigD1 i) // big1 => [|j /= /negPf ji] /=; +by rewrite ?hornerE nth_lagrange lagrange_sample ?eqxx ?ji ?mulr1 ?mulr0. +Qed. + +Lemma lagrange_gen (p : {poly K}) : (size p <= n)%N -> + p = \sum_(i < n) p.[x i]%:P * lagrange_ i. +Proof. +move=> sp; rewrite -[p](@npolypK _ n) //. +rewrite [npolyp _ _ in LHS](coord_basis lagrange_full) ?memvf //. +rewrite (@big_morph _ _ _ 0%R +%R) //; apply: eq_bigr=> i _. +by rewrite lagrange_coords mul_polyC nth_lagrange. +Qed. + +End lagrange. + +End Vspace. + +Notation "''nX^' i" := (tnth (npolyX _) i) : ring_scope. +Notation "x .-lagrange" := (lagrange x) : ring_scope. +Notation "x .-lagrange_" := (tnth x.-lagrange) : ring_scope. + +Section Qpoly. + +Variable R : ringType. +Variable h : {poly R}. + +Definition mk_monic := + if (1 < size h)%N && (h \is monic) then h else 'X. + +Definition qpoly := {poly_(size mk_monic).-1 R}. +End Qpoly. + +Notation "{ 'poly' '%/' p }" := (qpoly p) : type_scope. + +Section QpolyProp. + +Variable R : ringType. +Variable h : {poly R}. + +Lemma monic_mk_monic : (mk_monic h) \is monic. +Proof. +rewrite /mk_monic; case: leqP=> [_|/=]; first by apply: monicX. +by case E : (h \is monic) => [->//|] => _; apply: monicX. +Qed. + +Lemma size_mk_monic_gt1 : (1 < size (mk_monic h))%N. +Proof. +by rewrite !fun_if size_polyX; case: leqP => //=; rewrite if_same. +Qed. + +Lemma size_mk_monic_gt0 : (0 < size (mk_monic h))%N. +Proof. by rewrite (leq_trans _ size_mk_monic_gt1). Qed. + +Lemma mk_monic_neq0 : mk_monic h != 0. +Proof. by rewrite -size_poly_gt0 size_mk_monic_gt0. Qed. + +Lemma size_mk_monic (p : {poly %/ h}) : size p < size (mk_monic h). +Proof. +have: (p : {poly R}) \is a poly_of_size (size (mk_monic h)).-1 by case: p. +by rewrite qualifE -ltnS prednK // size_mk_monic_gt0. +Qed. + +(* standard inject *) +Lemma poly_of_size_mod p : + rmodp p (mk_monic h) \is a poly_of_size (size (mk_monic h)).-1. +Proof. +rewrite qualifE -ltnS prednK ?size_mk_monic_gt0 //. +by apply: ltn_rmodpN0; rewrite mk_monic_neq0. +Qed. + +Definition in_qpoly p : {poly %/ h} := NPoly_of _ (poly_of_size_mod p). + +Lemma in_qpoly_small (p : {poly R}) : + size p < size (mk_monic h) -> in_qpoly p = p :> {poly R}. +Proof. exact: rmodp_small. Qed. + +Lemma in_qpoly0 : in_qpoly 0 = 0. +Proof. by apply/val_eqP; rewrite /= rmod0p. Qed. + +Lemma in_qpolyD p q : in_qpoly (p + q) = in_qpoly p + in_qpoly q. +Proof. by apply/val_eqP=> /=; rewrite rmodpD ?monic_mk_monic. Qed. + +Lemma in_qpolyZ a p : in_qpoly (a *: p) = a *: in_qpoly p. +Proof. apply/val_eqP=> /=; rewrite rmodpZ ?monic_mk_monic //. Qed. + +Fact in_qpoly_is_linear : linear in_qpoly. +Proof. by move=> k p q; rewrite in_qpolyD in_qpolyZ. Qed. + +Canonical in_qpoly_additive := Additive in_qpoly_is_linear. +Canonical in_qpoly_linear := Linear in_qpoly_is_linear. + +Lemma qpolyC_proof k : + (k%:P : {poly R}) \is a poly_of_size (size (mk_monic h)).-1. +Proof. +rewrite qualifE -ltnS size_polyC prednK ?size_mk_monic_gt0 //. +by rewrite (leq_ltn_trans _ size_mk_monic_gt1) //; case: eqP. +Qed. + +Definition qpolyC k : {poly %/ h} := NPoly_of _ (qpolyC_proof k). + +Lemma qpolyCE k : qpolyC k = k%:P :> {poly R}. +Proof. by []. Qed. + +Lemma qpolyC0 : qpolyC 0 = 0. +Proof. by apply/val_eqP/eqP. Qed. + +Definition qpoly1 := qpolyC 1. + +Definition qpoly_mul (q1 q2 : {poly %/ h}) : {poly %/ h} := + in_qpoly ((q1 : {poly R}) * q2). + +Lemma qpoly_mul1z : left_id qpoly1 qpoly_mul. +Proof. +by move=> x; apply: val_inj; rewrite /= mul1r rmodp_small // size_mk_monic. +Qed. + +Lemma qpoly_mulz1 : right_id qpoly1 qpoly_mul. +Proof. +by move=> x; apply: val_inj; rewrite /= mulr1 rmodp_small // size_mk_monic. +Qed. + +Lemma qpoly_nontrivial : qpoly1 != 0. +Proof. by apply/eqP/val_eqP; rewrite /= oner_eq0. Qed. + +Definition qpolyX := in_qpoly 'X. +Notation "'qX" := qpolyX. + +Lemma qpolyXE : 2 < size h -> h \is monic -> 'qX = 'X :> {poly R}. +Proof. +move=> sh_gt2 h_mo. +by rewrite in_qpoly_small // size_polyX /mk_monic ifT // (ltn_trans _ sh_gt2). +Qed. + +End QpolyProp. + +Notation "'qX" := (qpolyX _) : ring_scope. + +Lemma mk_monic_X (R : ringType) : mk_monic 'X = 'X :> {poly R}. +Proof. by rewrite /mk_monic size_polyX monicX. Qed. + +Lemma mk_monic_Xn (R : ringType) n : mk_monic 'X^n = 'X^n.-1.+1 :> {poly R}. +Proof. by case: n => [|n]; rewrite /mk_monic size_polyXn monicXn /= ?expr1. Qed. + +Lemma card_qpoly (R : finRingType) (h : {poly R}): + #|{poly %/ h}| = #|R| ^ (size (mk_monic h)).-1. +Proof. by rewrite card_npoly. Qed. + +Lemma card_monic_qpoly (R : finRingType) (h : {poly R}): + 1 < size h -> h \is monic -> #|{poly %/ h}| = #|R| ^ (size h).-1. +Proof. by move=> sh_gt1 hM; rewrite card_qpoly /mk_monic sh_gt1 hM. Qed. + +Section QRing. + +Variable A : comRingType. +Variable h : {poly A}. + +(* Ring operations *) + +Lemma qpoly_mulC : commutative (@qpoly_mul A h). +Proof. by move=> p q; apply: val_inj; rewrite /= mulrC. Qed. + +Lemma qpoly_mulA : associative (@qpoly_mul A h). +Proof. +have rPM := monic_mk_monic h; move=> p q r; apply: val_inj. +by rewrite /= rmodp_mulml // rmodp_mulmr // mulrA. +Qed. + +Lemma qpoly_mul_addr : right_distributive (@qpoly_mul A h) +%R. +Proof. +have rPM := monic_mk_monic h; move=> p q r; apply: val_inj. +by rewrite /= !(mulrDr, rmodp_mulmr, rmodpD). +Qed. + +Lemma qpoly_mul_addl : left_distributive (@qpoly_mul A h) +%R. +Proof. by move=> p q r; rewrite -!(qpoly_mulC r) qpoly_mul_addr. Qed. + +Definition qpoly_ringMixin := + ComRingMixin qpoly_mulA qpoly_mulC (@qpoly_mul1z _ h) qpoly_mul_addl + (@qpoly_nontrivial _ h). + +Canonical qpoly_ringType := Eval hnf in RingType {poly %/ h} qpoly_ringMixin. +Canonical npoly_ringType := Eval hnf in RingType {poly_ _ A} qpoly_ringMixin. +Canonical qpoly_comRingType := Eval hnf in ComRingType {poly %/ h} qpoly_mulC. +Canonical npoly_comRingType := Eval hnf in ComRingType {poly_ _ A} qpoly_mulC. + +Lemma in_qpoly1 : in_qpoly h 1 = 1. +Proof. +apply/val_eqP/eqP/in_qpoly_small. +by rewrite size_polyC oner_eq0 /= size_mk_monic_gt1. +Qed. + +Lemma in_qpolyM q1 q2 : in_qpoly h (q1 * q2) = in_qpoly h q1 * in_qpoly h q2. +Proof. +apply/val_eqP => /=. +by rewrite rmodp_mulml ?rmodp_mulmr // monic_mk_monic. +Qed. + +Fact in_qpoly_multiplicative : multiplicative (in_qpoly h). +Proof. by split; [ apply: in_qpolyM | apply: in_qpoly1]. Qed. + +Canonical in_qpoly_rmorphism := AddRMorphism in_qpoly_multiplicative. + +Lemma poly_of_qpoly_sum I (r : seq I) (P1 : pred I) (F : I -> {poly %/ h}) : + ((\sum_(i <- r | P1 i) F i) = + \sum_(p <- r | P1 p) ((F p) : {poly A}) :> {poly A})%R. +Proof. by elim/big_rec2: _ => // i p q IH <-. Qed. + +Lemma poly_of_qpolyD (p q : {poly %/ h}) : + p + q= (p : {poly A}) + q :> {poly A}. +Proof. by []. Qed. + +Lemma qpolyC_natr p : (p%:R : {poly %/ h}) = p%:R :> {poly A}. +Proof. by elim: p => //= p IH; rewrite !mulrS poly_of_qpolyD IH. Qed. + +Lemma char_qpoly : [char {poly %/ h}] =i [char A]. +Proof. +move=> p; rewrite !inE; congr (_ && _). +apply/eqP/eqP=> [/(congr1 val) /=|pE]; last first. + by apply: val_inj => //=; rewrite qpolyC_natr /= -polyC_natr pE. +rewrite !qpolyC_natr -!polyC_natr => /(congr1 val) /=. +by rewrite polyseqC polyseq0; case: eqP. +Qed. + +Lemma poly_of_qpolyM (p q : {poly %/ h}) : + p * q = rmodp ((p : {poly A}) * q) (mk_monic h) :> {poly A}. +Proof. by []. Qed. + +Lemma poly_of_qpolyX (p : {poly %/ h}) n : + p ^+ n = rmodp ((p : {poly A}) ^+ n) (mk_monic h) :> {poly A}. +Proof. +have HhQ := monic_mk_monic h. +elim: n => //= [|n IH]. + rewrite rmodp_small // size_polyC ?(leq_ltn_trans _ (size_mk_monic_gt1 _)) //. + by case: eqP. +by rewrite exprS /= IH // rmodp_mulmr // -exprS. +Qed. + +Lemma qpolyCN (a : A) : qpolyC h (- a) = -(qpolyC h a). +Proof. apply: val_inj; rewrite /= raddfN //= raddfN. Qed. + +Lemma qpolyCD : {morph (qpolyC h) : a b / a + b >-> a + b}%R. +Proof. by move=> a b; apply/val_eqP/eqP=> /=; rewrite -!raddfD. Qed. + +Lemma qpolyCM : {morph (qpolyC h) : a b / a * b >-> a * b}%R. +Proof. +move=> a b; apply/val_eqP/eqP=> /=; rewrite -polyCM rmodp_small //=. +have := qpolyC_proof h (a * b). +by rewrite qualifE -ltnS prednK // size_mk_monic_gt0. +Qed. + +Lemma qpolyC_is_rmorphism : rmorphism (qpolyC h). +Proof. +do ?split; move=> // x y /=; first by rewrite qpolyCD qpolyCN. +by rewrite qpolyCM. +Qed. + +Canonical qpolyC_rmorphism := RMorphism qpolyC_is_rmorphism. + +Definition qpoly_scale k (p : {poly %/ h}) : {poly %/ h} := (k *: p)%R. + +Fact qpoly_scaleA a b p : + qpoly_scale a (qpoly_scale b p) = qpoly_scale (a * b) p. +Proof. by apply/val_eqP; rewrite /= scalerA. Qed. + +Fact qpoly_scale1l : left_id 1%R qpoly_scale. +Proof. by move=> p; apply/val_eqP; rewrite /= scale1r. Qed. + +Fact qpoly_scaleDr a : {morph qpoly_scale a : p q / (p + q)%R}. +Proof. by move=> p q; apply/val_eqP; rewrite /= scalerDr. Qed. + +Fact qpoly_scaleDl p : {morph qpoly_scale^~ p : a b / a + b}%R. +Proof. by move=> a b; apply/val_eqP; rewrite /= scalerDl. Qed. + +Fact qpoly_scaleAl a p q : qpoly_scale a (p * q) = (qpoly_scale a p * q). +Proof. by apply/val_eqP; rewrite /= -scalerAl rmodpZ // monic_mk_monic. Qed. + +Fact qpoly_scaleAr a p q : qpoly_scale a (p * q) = p * (qpoly_scale a q). +Proof. by apply/val_eqP; rewrite /= -scalerAr rmodpZ // monic_mk_monic. Qed. + +Canonical qpoly_lalgType := + Eval hnf in LalgType A ({poly %/ h}) qpoly_scaleAl. +Canonical npoly_lalgType := + Eval hnf in LalgType A ({poly_ _ _}) qpoly_scaleAl. + +Canonical qpoly_algType := AlgType A {poly %/ h} qpoly_scaleAr. +Canonical npoly_algType := AlgType A {poly_ _ _} qpoly_scaleAr. + +Lemma poly_of_qpolyZ (p : {poly %/ h}) a : + a *: p = a *: (p : {poly A}) :> {poly A}. +Proof. by []. Qed. + +End QRing. + +Section Field. + +Variable R : fieldType. +Variable h : {poly R}. + +Local Notation hQ := (mk_monic h). + +Definition qpoly_inv (p : {poly %/ h}) := + if coprimep hQ p then let v : {poly %/ h} := in_qpoly h (egcdp hQ p).2 in + ((lead_coef (v * p)) ^-1 *: v) else p. + +(* Ugly *) +Lemma qpoly_mulVz (p : {poly %/ h}) : coprimep hQ p -> (qpoly_inv p * p = 1)%R. +Proof. +have hQM := monic_mk_monic h. +move=> hCp; apply: val_inj; rewrite /qpoly_inv /in_qpoly hCp /=. +have p_neq0 : p != 0%R. + apply/eqP=> pZ; move: hCp; rewrite pZ. + rewrite coprimep0 -size_poly_eq1. + by case: size (size_mk_monic_gt1 h) => [|[]]. +have F : (egcdp hQ p).1 * hQ + (egcdp hQ p).2 * p %= 1. + apply: eqp_trans _ (_ : gcdp hQ p %= _). + rewrite eqp_sym. + by case: (egcdpP (mk_monic_neq0 h) p_neq0). + by rewrite -size_poly_eq1. +rewrite rmodp_mulml // -scalerAl rmodpZ // rmodp_mulml //. +rewrite -[rmodp]/Pdiv.Ring.rmodp -!Pdiv.IdomainMonic.modpE //. +have := eqp_modpl hQ F. +rewrite modpD // modp_mull add0r // . +rewrite [(1 %% _)%R]modp_small => // [egcdE|]; last first. + by rewrite size_polyC oner_eq0 size_mk_monic_gt1. +rewrite {2}(eqpfP egcdE) lead_coefC divr1 alg_polyC scale_polyC mulVf //. +rewrite lead_coef_eq0. +apply/eqP => egcdZ. +by move: egcdE; rewrite -size_poly_eq1 egcdZ size_polyC eq_sym eqxx. +Qed. + +Lemma qpoly_mulzV (p : {poly %/ h}) : + coprimep hQ p -> (p * (qpoly_inv p) = 1)%R. +Proof. by move=> hCp; rewrite /= mulrC qpoly_mulVz. Qed. + +Lemma qpoly_intro_unit (p q : {poly %/ h}) : (q * p = 1)%R -> coprimep hQ p. +Proof. +have hQM := monic_mk_monic h. +case; rewrite -[rmodp]/Pdiv.Ring.rmodp -!Pdiv.IdomainMonic.modpE // => qp1. +have:= coprimep1 hQ. +rewrite -coprimep_modr -[1%R]qp1 !coprimep_modr coprimepMr; by case/andP. +Qed. + +Lemma qpoly_inv_out (p : {poly %/ h}) : ~~ coprimep hQ p -> qpoly_inv p = p. +Proof. by rewrite /qpoly_inv => /negPf->. Qed. + +Definition qpoly_unitRingMixin := + ComUnitRingMixin qpoly_mulVz qpoly_intro_unit qpoly_inv_out. +Canonical qpoly_unitRingType := + Eval hnf in UnitRingType {poly %/ h} qpoly_unitRingMixin. +Canonical npoly_unitRingType := + Eval hnf in UnitRingType {poly_ _ _} qpoly_unitRingMixin. +Canonical qpoly_comUnitRingType := + Eval hnf in [comUnitRingType of {poly %/ h}]. + +Lemma irreducible_poly_coprime (A : idomainType) (p q : {poly A}) : + irreducible_poly p -> coprimep p q = ~~(p %| q)%R. +Proof. +case => H1 H2; apply/coprimepP/negP. + move=> sPq H. + by have := sPq p (dvdpp _) H; rewrite -size_poly_eq1; case: size H1 => [|[]]. +move=> pNDq d dDp dPq. +rewrite -size_poly_eq1; case: eqP => // /eqP /(H2 _) => /(_ dDp) dEp. +by case: pNDq; rewrite -(eqp_dvdl _ dEp). +Qed. + +End Field. + diff --git a/mathcomp/algebra/rat.v b/mathcomp/algebra/rat.v index bea2b9c039..ca6cdd8630 100644 --- a/mathcomp/algebra/rat.v +++ b/mathcomp/algebra/rat.v @@ -560,8 +560,8 @@ Infix "/" := divq : rat_scope. Lemma ratzE n : ratz n = n%:Q. Proof. elim: n=> [|n ihn|n ihn]; first by rewrite mulr0z ratz_frac. - by rewrite intS mulrzDl ratzD ihn. -by rewrite intS opprD mulrzDl ratzD ihn. + by rewrite intS mulrzDr_tmp ratzD ihn. +by rewrite intS opprD mulrzDr_tmp ratzD ihn. Qed. Lemma numq_int n : numq n%:Q = n. Proof. by rewrite -ratzE. Qed. diff --git a/mathcomp/algebra/ssralg.v b/mathcomp/algebra/ssralg.v index ee43491719..1579b49324 100644 --- a/mathcomp/algebra/ssralg.v +++ b/mathcomp/algebra/ssralg.v @@ -4,7 +4,7 @@ From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat div seq. From mathcomp Require Import choice fintype finfun bigop prime binomial. (******************************************************************************) -(* The algebraic part of the Algebraic Hierarchy, as described in *) +(* The base part of the Algebraic Hierarchy, as described in *) (* ``Packaging mathematical structures'', TPHOLs09, by *) (* Francois Garillot, Georges Gonthier, Assia Mahboubi, Laurence Rideau *) (* *) @@ -691,9 +691,9 @@ Definition opp V := Zmodule.opp (Zmodule.class V). Definition add V := Zmodule.add (Zmodule.class V). Local Notation "0" := (zero _) : ring_scope. -Local Notation "-%R" := (@opp _) : fun_scope. +Local Notation "-%R" := (@opp _) : function_scope. Local Notation "- x" := (opp x) : ring_scope. -Local Notation "+%R" := (@add _) : fun_scope. +Local Notation "+%R" := (@add _) : function_scope. Local Notation "x + y" := (add x y) : ring_scope. Local Notation "x - y" := (x + - y) : ring_scope. @@ -995,7 +995,7 @@ Definition rreg R x := injective ((@mul R)^~ x). Local Notation "1" := (one _) : ring_scope. Local Notation "- 1" := (- (1)) : ring_scope. Local Notation "n %:R" := (1 *+ n) : ring_scope. -Local Notation "*%R" := (@mul _) : fun_scope. +Local Notation "*%R" := (@mul _) : function_scope. Local Notation "x * y" := (mul x y) : ring_scope. Local Notation "x ^+ n" := (exp x n) : ring_scope. @@ -1630,7 +1630,7 @@ Import Lmodule.Exports. Definition scale (R : ringType) (V : lmodType R) : R -> V -> V := Lmodule.scale (Lmodule.class V). -Local Notation "*:%R" := (@scale _ _) : fun_scope. +Local Notation "*:%R" := (@scale _ _) : function_scope. Local Notation "a *: v" := (scale a v) : ring_scope. Section LmoduleTheory. @@ -1638,7 +1638,7 @@ Section LmoduleTheory. Variables (R : ringType) (V : lmodType R). Implicit Types (a b c : R) (u v : V). -Local Notation "*:%R" := (@scale R V) : fun_scope. +Local Notation "*:%R" := (@scale R V) : function_scope. Lemma scalerA a b v : a *: (b *: v) = a * b *: v. Proof. by case: V v => ? [] ? []. Qed. @@ -1906,14 +1906,14 @@ Notation null_fun V := (null_fun_head (Phant V)) (only parsing). (* in Coq 8.2 it gets precedence when GRing.Theory is not imported. *) Local Notation in_alg_loc A := (in_alg_head (Phant A)) (only parsing). -Local Notation "\0" := (null_fun _) : ring_scope. -Local Notation "f \+ g" := (add_fun f g) : ring_scope. -Local Notation "f \- g" := (sub_fun f g) : ring_scope. -Local Notation "\- f" := (opp_fun f) : ring_scope. -Local Notation "a \*: f" := (scale_fun a f) : ring_scope. -Local Notation "x \*o f" := (mull_fun x f) : ring_scope. -Local Notation "x \o* f" := (mulr_fun x f) : ring_scope. -Local Notation "f \* g" := (mul_fun f g) : ring_scope. +Local Notation "\0" := (null_fun _) : function_scope. +Local Notation "f \+ g" := (add_fun f g) : function_scope. +Local Notation "f \- g" := (sub_fun f g) : function_scope. +Local Notation "\- f" := (opp_fun f) : function_scope. +Local Notation "a \*: f" := (scale_fun a f) : function_scope. +Local Notation "x \*o f" := (mull_fun x f) : function_scope. +Local Notation "x \o* f" := (mulr_fun x f) : function_scope. +Local Notation "f \* g" := (mul_fun f g) : function_scope. Arguments add_fun {_ _} f g _ /. Arguments sub_fun {_ _} f g _ /. @@ -5751,6 +5751,8 @@ Definition mulr_natr := mulr_natr. Definition natrD := natrD. Definition nat1r := nat1r. Definition natr1 := natr1. +Arguments natr1 {R} n. +Arguments nat1r {R} n. Definition natrB := natrB. Definition natr_sum := natr_sum. Definition natrM := natrM. @@ -6156,29 +6158,42 @@ Export Pred.Exports SubType.Exports. Notation QEdecFieldMixin := QEdecFieldMixin. Variant Ione := IOne : Ione. -Variant Inatmul := INatmul : Ione -> nat -> Inatmul. +Inductive Inatmul := + | INatmul : Ione -> nat -> Inatmul + | IOpp : Inatmul -> Inatmul. Variant Idummy_placeholder :=. -Definition parse (x : Number.uint) : Inatmul := - INatmul IOne (Nat.of_num_uint x). +Definition parse (x : Number.int) : Inatmul := + match x with + | Number.IntDecimal (Decimal.Pos u) => INatmul IOne (Nat.of_uint u) + | Number.IntDecimal (Decimal.Neg u) => IOpp (INatmul IOne (Nat.of_uint u)) + | Number.IntHexadecimal (Hexadecimal.Pos u) => + INatmul IOne (Nat.of_hex_uint u) + | Number.IntHexadecimal (Hexadecimal.Neg u) => + IOpp (INatmul IOne (Nat.of_hex_uint u)) + end. -Definition print (x : Inatmul) : Number.uint := +Definition print (x : Inatmul) : option Number.int := match x with - | INatmul IOne n => Number.UIntDecimal (Nat.to_uint n) + | INatmul IOne n => + Some (Number.IntDecimal (Decimal.Pos (Nat.to_uint n))) + | IOpp (INatmul IOne n) => + Some (Number.IntDecimal (Decimal.Neg (Nat.to_uint n))) + | _ => None end. Arguments GRing.one {R}. Set Warnings "-via-type-remapping,-via-type-mismatch". Number Notation Idummy_placeholder parse print (via Inatmul - mapping [[GRing.natmul] => INatmul, [GRing.one] => IOne]) + mapping [[GRing.natmul] => INatmul, [GRing.opp] => IOpp, [GRing.one] => IOne]) : ring_scope. Set Warnings "via-type-remapping,via-type-mismatch". Arguments GRing.one : clear implicits. Notation "0" := (zero _) : ring_scope. -Notation "-%R" := (@opp _) : fun_scope. +Notation "-%R" := (@opp _) : function_scope. Notation "- x" := (opp x) : ring_scope. -Notation "+%R" := (@add _) : fun_scope. +Notation "+%R" := (@add _) : function_scope. Notation "x + y" := (add x y) : ring_scope. Notation "x - y" := (add x (- y)) : ring_scope. Notation "x *+ n" := (natmul x n) : ring_scope. @@ -6192,14 +6207,14 @@ Notation "- 1" := (opp 1) : ring_scope. Notation "n %:R" := (natmul 1 n) : ring_scope. Notation "[ 'char' R ]" := (char (Phant R)) : ring_scope. Notation Frobenius_aut chRp := (Frobenius_aut chRp). -Notation "*%R" := (@mul _) : fun_scope. +Notation "*%R" := (@mul _) : function_scope. Notation "x * y" := (mul x y) : ring_scope. Notation "x ^+ n" := (exp x n) : ring_scope. Notation "x ^-1" := (inv x) : ring_scope. Notation "x ^- n" := (inv (x ^+ n)) : ring_scope. Notation "x / y" := (mul x y^-1) : ring_scope. -Notation "*:%R" := (@scale _ _) : fun_scope. +Notation "*:%R" := (@scale _ _) : function_scope. Notation "a *: m" := (scale a m) : ring_scope. Notation "k %:A" := (scale k 1) : ring_scope. Notation "\0" := (null_fun _) : ring_scope. diff --git a/mathcomp/algebra/ssrint.v b/mathcomp/algebra/ssrint.v index ac447b810c..ccf6660b24 100644 --- a/mathcomp/algebra/ssrint.v +++ b/mathcomp/algebra/ssrint.v @@ -13,16 +13,13 @@ From mathcomp Require Import poly. (* However (Posz m = Posz n) is displayed as (m = n :> int) *) (* (and so are ==, != and <>) *) (* Lemma NegzE : turns (Negz n) into - n.+1%:Z. *) -(* == as an int with an optional minus sign *) +(* == as an int, with an optional minus sign *) (* followed by a sequence of digits. This notation is in *) (* int_scope (delimited with %Z). *) (* x *~ m == m times x, with m : int; *) (* convertible to x *+ n if m is Posz n *) (* convertible to x *- n.+1 if m is Negz n. *) (* m%:~R == the image of m : int in a generic ring (:= 1 *~ m). *) -(* == %:~R with an optional minus sign followed *) -(* by a sequence of digits. This notation is in ring_scope *) -(* (delimited with %R). *) (* x ^ m == x to the m, with m : int; *) (* convertible to x ^+ n if m is Posz n *) (* convertible to x ^- n.+1 if m is Negz n. *) @@ -541,7 +538,7 @@ Definition intmul (R : zmodType) (x : R) (n : int) := nosimpl | Negz n => (x *- (n.+1))%R end. -Notation "*~%R" := (@intmul _) (at level 0, format " *~%R") : fun_scope. +Notation "*~%R" := (@intmul _) (at level 0, format " *~%R") : function_scope. Notation "x *~ n" := (intmul x n) (at level 40, left associativity, format "x *~ n") : ring_scope. Notation intr := ( *~%R 1). @@ -554,32 +551,6 @@ Proof. by []. Qed. Lemma nmulrn (R : zmodType) (x : R) (n : nat) : x *- n = x *~ - n%:Z. Proof. by case: n=> [] //; rewrite ?oppr0. Qed. -Variant Iintmul := IIntmul : Ione -> int -> Iintmul. - -Definition parse (x : Number.int) : Iintmul := - let i := - match x with - | Number.IntDecimal (Decimal.Pos u) => Posz (Nat.of_uint u) - | Number.IntDecimal (Decimal.Neg u) => Negz (Nat.of_uint u).-1 - | Number.IntHexadecimal (Hexadecimal.Pos u) => Posz (Nat.of_hex_uint u) - | Number.IntHexadecimal (Hexadecimal.Neg u) => Negz (Nat.of_hex_uint u).-1 - end in - IIntmul IOne i. - -Definition print (x : Iintmul) : Number.int := - match x with - | IIntmul IOne (Posz n) => Number.IntDecimal (Decimal.Pos (Nat.to_uint n)) - | IIntmul IOne (Negz n) => Number.IntDecimal (Decimal.Neg (Nat.to_uint n.+1)) - end. - -Arguments GRing.one {R}. -Set Warnings "-via-type-remapping,-via-type-mismatch". -Number Notation Idummy_placeholder parse print (via Iintmul - mapping [[intmul] => IIntmul, [GRing.one] => IOne]) - : ring_scope. -Set Warnings "via-type-remapping,via-type-mismatch". -Arguments GRing.one : clear implicits. - Section ZintLmod. Definition zmodule (M : Type) : Type := M. @@ -605,7 +576,7 @@ Proof. by rewrite !mulrzA_C mulrC. Qed. Fact mulr1z (x : M) : x *~ 1 = x. Proof. by []. Qed. -Fact mulrzDr m : {morph ( *~%R^~ m : M -> M) : x y / x + y}. +Fact mulrzDl_tmp m : {morph ( *~%R^~ m : M -> M) : x y / x + y}. Proof. by elim: m=> [|m _|m _] x y; rewrite ?addr0 /intmul //= ?mulrnDl // opprD. @@ -622,7 +593,7 @@ rewrite -{2}[m](@subnKC n)// mulrnDr addrAC subrr add0r. by rewrite subzn. Qed. -Fact mulrzDl x : {morph *~%R x : m n / m + n}. +Fact mulrzDr_tmp x : {morph *~%R x : m n / m + n}. Proof. elim=> [|m _|m _]; elim=> [|n _|n _]; rewrite /intmul //=; rewrite -?(opprD) ?(add0r, addr0, mulrnDr, subn0) //. @@ -633,7 +604,7 @@ Qed. Definition Mint_LmodMixin := @LmodMixin _ [zmodType of M] (fun n x => x *~ n) - mulrzA_C mulr1z mulrzDr mulrzDl. + mulrzA_C mulr1z mulrzDl_tmp mulrzDr_tmp. Canonical Mint_LmodType := LmodType int M^z Mint_LmodMixin. Lemma scalezrE n x : n *: (x : M^z) = x *~ n. Proof. by []. Qed. @@ -675,6 +646,11 @@ Canonical intmul_additive x := Additive (@mulrzBr x). End ZintLmod. +#[deprecated(since="mathcomp 2.1.0", note="Use mulrzDr_tmp instead. mulrzDl will be renamed mulrzDr in the future.")] +Notation mulrzDl := mulrzDr_tmp. +#[deprecated(since="mathcomp 2.1.0", note="Use mulrzDl_tmp instead. mulrzDr will be renamed mulrzDl in the future.")] +Notation mulrzDr := mulrzDl_tmp. + Lemma ffunMzE (I : finType) (M : zmodType) (f : {ffun I -> M}) z x : (f *~ z) x = f x *~ z. Proof. by case: z => n; rewrite ?ffunE ffunMnE. Qed. @@ -683,7 +659,7 @@ Lemma intz (n : int) : n%:~R = n. Proof. elim: n=> //= n ihn; rewrite /intmul /=. by rewrite -addn1 mulrnDr /= PoszD -ihn. -by rewrite nmulrn intS opprD mulrzDl ihn. +by rewrite nmulrn intS opprD mulrzDr_tmp ihn. Qed. Lemma natz (n : nat) : n%:R = n%:Z :> int. @@ -720,7 +696,7 @@ Lemma mulrbz x (b : bool) : x *~ b = (if b then x else 0). Proof. by case: b. Qed. Lemma intrD m n : (m + n)%:~R = m%:~R + n%:~R :> R. -Proof. exact: mulrzDl. Qed. +Proof. exact: mulrzDr_tmp. Qed. Lemma intrM m n : (m * n)%:~R = m%:~R * n%:~R :> R. Proof. by rewrite mulrzA -mulrzr. Qed. @@ -754,8 +730,8 @@ Implicit Types u v w : V. Lemma scaler_int n v : n%:~R *: v = v *~ n. Proof. elim: n=> [|n ihn|n ihn]; first by rewrite scale0r. - by rewrite intS !mulrzDl scalerDl ihn scale1r. -by rewrite intS opprD !mulrzDl scalerDl ihn scaleN1r. + by rewrite intS !mulrzDr_tmp scalerDl ihn scale1r. +by rewrite intS opprD !mulrzDr_tmp scalerDl ihn scaleN1r. Qed. Lemma scalerMzl a v n : (a *: v) *~ n = (a *~ n) *: v. diff --git a/mathcomp/algebra/ssrnum.v b/mathcomp/algebra/ssrnum.v index 0fe817ad73..7a874a3029 100644 --- a/mathcomp/algebra/ssrnum.v +++ b/mathcomp/algebra/ssrnum.v @@ -93,6 +93,7 @@ From mathcomp Require Import ssralg poly. (* x \is a Num.pos <=> x is positive (:= x > 0). *) (* x \is a Num.neg <=> x is negative (:= x < 0). *) (* x \is a Num.nneg <=> x is positive or 0 (:= x >= 0). *) +(* x \is a Num.npos <=> x is negative or 0 (:= x <= 0). *) (* x \is a Num.real <=> x is real (:= x >= 0 or x < 0). *) (* Num.bound x == in archimedean fields, and upper bound for x, i.e., *) (* and n such that `|x| < n%:R. *) @@ -119,6 +120,12 @@ From mathcomp Require Import ssralg poly. (* i : interior = in [0, 1] or ]0, 1[ *) (* e : exterior = in [1, +oo[ or ]1; +oo[ *) (* w : non strict (weak) monotony *) +(* *) +(* Pdeg2.NumClosed : theory of the degree 2 polynomials on NumClosedField. *) +(* Pdeg2.NumClosedMonic : theory of Pdeg2.NumClosed specialized to monic *) +(* polynomials. *) +(* Pdeg2.Real : theory of the degree 2 polynomials on RealField and rcfType. *) +(* Pdeg2.RealMonic : theory of Pdeg2.Real specialized to monic polynomials. *) (******************************************************************************) Set Implicit Arguments. @@ -355,31 +362,31 @@ Arguments normr {R T} x. Notation ler := (@Order.le ring_display _) (only parsing). Notation "@ 'ler' R" := (@Order.le ring_display R) - (at level 10, R at level 8, only parsing) : fun_scope. + (at level 10, R at level 8, only parsing) : function_scope. Notation ltr := (@Order.lt ring_display _) (only parsing). Notation "@ 'ltr' R" := (@Order.lt ring_display R) - (at level 10, R at level 8, only parsing) : fun_scope. + (at level 10, R at level 8, only parsing) : function_scope. Notation ger := (@Order.ge ring_display _) (only parsing). Notation "@ 'ger' R" := (@Order.ge ring_display R) - (at level 10, R at level 8, only parsing) : fun_scope. + (at level 10, R at level 8, only parsing) : function_scope. Notation gtr := (@Order.gt ring_display _) (only parsing). Notation "@ 'gtr' R" := (@Order.gt ring_display R) - (at level 10, R at level 8, only parsing) : fun_scope. + (at level 10, R at level 8, only parsing) : function_scope. Notation lerif := (@Order.leif ring_display _) (only parsing). Notation "@ 'lerif' R" := (@Order.leif ring_display R) - (at level 10, R at level 8, only parsing) : fun_scope. + (at level 10, R at level 8, only parsing) : function_scope. Notation lterif := (@Order.lteif ring_display _) (only parsing). Notation "@ 'lteif' R" := (@Order.lteif ring_display R) - (at level 10, R at level 8, only parsing) : fun_scope. + (at level 10, R at level 8, only parsing) : function_scope. Notation comparabler := (@Order.comparable ring_display _) (only parsing). Notation "@ 'comparabler' R" := (@Order.comparable ring_display R) - (at level 10, R at level 8, only parsing) : fun_scope. + (at level 10, R at level 8, only parsing) : function_scope. Notation maxr := (@Order.max ring_display _). Notation "@ 'maxr' R" := (@Order.max ring_display R) - (at level 10, R at level 8, only parsing) : fun_scope. + (at level 10, R at level 8, only parsing) : function_scope. Notation minr := (@Order.min ring_display _). Notation "@ 'minr' R" := (@Order.min ring_display R) - (at level 10, R at level 8, only parsing) : fun_scope. + (at level 10, R at level 8, only parsing) : function_scope. Section Def. Context {R : numDomainType}. @@ -389,6 +396,7 @@ Definition sgr x : R := if x == 0 then 0 else if x < 0 then -1 else 1. Definition Rpos : qualifier 0 R := [qualify x : R | 0 < x]. Definition Rneg : qualifier 0 R := [qualify x : R | x < 0]. Definition Rnneg : qualifier 0 R := [qualify x : R | 0 <= x]. +Definition Rnpos : qualifier 0 R := [qualify x : R | x <= 0]. Definition Rreal : qualifier 0 R := [qualify x : R | (0 <= x) || (x <= 0)]. End Def. End Def. @@ -408,6 +416,7 @@ Notation min := minr. Notation pos := Rpos. Notation neg := Rneg. Notation nneg := Rnneg. +Notation npos := Rnpos. Notation real := Rreal. Module Keys. Section Keys. @@ -428,14 +437,14 @@ Import Def Keys. Notation "`| x |" := (norm x) : ring_scope. -Notation "<=%R" := le : fun_scope. -Notation ">=%R" := ge : fun_scope. -Notation "<%R" := lt : fun_scope. -Notation ">%R" := gt : fun_scope. -Notation "=<%R" := comparable : fun_scope. -Notation "><%R" := (fun x y => ~~ (comparable x y)) : fun_scope. +Notation "<=%R" := le : function_scope. +Notation ">=%R" := ge : function_scope. +Notation "<%R" := lt : function_scope. +Notation ">%R" := gt : function_scope. +Notation "=<%R" := comparable : function_scope. +Notation "><%R" := (fun x y => ~~ (comparable x y)) : function_scope. Notation "<= y" := (ge y) : ring_scope. Notation "<= y :> T" := (<= (y : T)) (only parsing) : ring_scope. @@ -1386,6 +1395,7 @@ Definition normrN V (x : V) : `|- x| = `|x| := normrN x. Lemma posrE x : (x \is pos) = (0 < x). Proof. by []. Qed. Lemma negrE x : (x \is neg) = (x < 0). Proof. by []. Qed. Lemma nnegrE x : (x \is nneg) = (0 <= x). Proof. by []. Qed. +Lemma nposrE x : (x \is npos) = (x <= 0). Proof. by []. Qed. Lemma realE x : (x \is real) = (0 <= x) || (x <= 0). Proof. by []. Qed. (* General properties of <= and < *) @@ -1520,6 +1530,25 @@ Proof. by move=> x_le0; rewrite -[r in _ = r]ger0_norm ?normrN ?oppr_ge0. Qed. Definition gtr0_norm x (hx : 0 < x) := ger0_norm (ltW hx). Definition ltr0_norm x (hx : x < 0) := ler0_norm (ltW hx). +Lemma ger0_le_norm : + {in nneg &, {mono (@normr _ R) : x y / x <= y}}. +Proof. by move=> x y; rewrite !nnegrE => x0 y0; rewrite !ger0_norm. Qed. + +Lemma gtr0_le_norm : + {in pos &, {mono (@normr _ R) : x y / x <= y}}. +Proof. by move=> x y; rewrite !posrE => /ltW x0 /ltW y0; exact: ger0_le_norm. Qed. + +Lemma ler0_ge_norm : + {in npos &, {mono (@normr _ R) : x y / x <= y >-> x >= y}}. +Proof. +move=> x y; rewrite !nposrE => x0 y0. +by rewrite !ler0_norm// -subr_ge0 opprK addrC subr_ge0. +Qed. + +Lemma ltr0_ge_norm : + {in neg &, {mono (@normr _ R) : x y / x <= y >-> x >= y}}. +Proof. by move=> x y; rewrite !negrE => /ltW x0 /ltW y0; exact: ler0_ge_norm. Qed. + (* Comparision to 0 of a difference *) Lemma subr_ge0 x y : (0 <= y - x) = (x <= y). Proof. exact: subr_ge0. Qed. @@ -1927,9 +1956,15 @@ Proof. by rewrite -{1}[x]add0r lterD2. Qed. Lemma gerDl x y : (x + y <= x) = (y <= 0). Proof. by rewrite -{2}[x]addr0 lterD2. Qed. +Lemma gerBl x y : (x - y <= x) = (0 <= y). +Proof. by rewrite lerBlDl lerDr. Qed. + Lemma gtrDl x y : (x + y < x) = (y < 0). Proof. by rewrite -{2}[x]addr0 lterD2. Qed. +Lemma gtrBl x y : (x - y < x) = (0 < y). +Proof. by rewrite ltrBlDl ltrDr. Qed. + Lemma gerDr x y : (y + x <= x) = (y <= 0). Proof. by rewrite -{2}[x]add0r lterD2. Qed. @@ -3782,7 +3817,7 @@ Notation ltr_eexpn2l := ltr_eXn2l. Notation lter_eexpn2l := lter_eXn2l. #[deprecated(since="mathcomp 1.17.0", note="Use ler_wpM2l instead.")] Notation ler_wpmul2l := ler_wpM2l. -#[deprecated(since="mathcomp 1.17.0", note="Use ler_wpM2rinstead.")] +#[deprecated(since="mathcomp 1.17.0", note="Use ler_wpM2r instead.")] Notation ler_wpmul2r := ler_wpM2r. #[deprecated(since="mathcomp 1.17.0", note="Use ler_wnM2l instead.")] Notation ler_wnmul2l := ler_wnM2l. @@ -4688,7 +4723,7 @@ Variable p : {poly R}. Lemma poly_itv_bound a b : {ub | forall x, a <= x <= b -> `|p.[x]| <= ub}. Proof. have [ub le_p_ub] := poly_disk_bound p (Num.max `|a| `|b|). -exists ub => x /andP[le_a_x le_x_b]; rewrite le_p_ub // le_maxr !ler_normr. +exists ub => x /andP[le_a_x le_x_b]; rewrite le_p_ub // le_max !ler_normr. by have [_|_] := ler0P x; rewrite ?lerN2 ?le_a_x ?le_x_b orbT. Qed. @@ -4826,23 +4861,24 @@ rewrite -(@ler_pXn2r R 2) ?nnegrE ?sqrtr_ge0 //. by rewrite !sqr_sqrtr // (le_trans pa). Qed. -Lemma ler_psqrt : {in @pos R &, {mono sqrt : a b / a <= b}}. +Lemma ler_psqrt : {in @nneg R &, {mono sqrt : a b / a <= b}}. Proof. apply: le_mono_in => x y x_gt0 y_gt0. rewrite !lt_neqAle => /andP[neq_xy le_xy]. -by rewrite ler_wsqrtr // eqr_sqrt ?ltW // neq_xy. +by rewrite ler_wsqrtr // eqr_sqrt // neq_xy. Qed. -Lemma ler_sqrt a b : 0 < b -> (sqrt a <= sqrt b) = (a <= b). +Lemma ler_sqrt a b : 0 <= b -> (sqrt a <= sqrt b) = (a <= b). Proof. -move=> b_gt0; have [a_le0|a_gt0] := ler0P a; last by rewrite ler_psqrt. -by rewrite ler0_sqrtr // sqrtr_ge0 (le_trans a_le0) ?ltW. +move=> b_ge0; have [a_le0|a_gt0] := ler0P a; last first. + by rewrite ler_psqrt // nnegrE ltW. +by rewrite ler0_sqrtr // sqrtr_ge0 (le_trans a_le0). Qed. Lemma ltr_sqrt a b : 0 < b -> (sqrt a < sqrt b) = (a < b). Proof. move=> b_gt0; have [a_le0|a_gt0] := ler0P a; last first. - by rewrite (leW_mono_in ler_psqrt). + by rewrite (leW_mono_in ler_psqrt)//; apply: ltW. by rewrite ler0_sqrtr // sqrtr_gt0 b_gt0 (le_lt_trans a_le0). Qed. @@ -5612,6 +5648,534 @@ Arguments sqrCK_P {C x}. End Theory. +Module Export Pdeg2. + +Module NumClosed. + +Section Pdeg2NumClosed. + +Variables (F : numClosedFieldType) (p : {poly F}). + +Hypothesis degp : size p = 3%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let delta := b ^+ 2 - 4 * a * c. + +Let r1 := (- b - sqrtC delta) / (2 * a). +Let r2 := (- b + sqrtC delta) / (2 * a). + +Lemma deg2_poly_factor : p = a *: ('X - r1%:P) * ('X - r2%:P). +Proof. by apply: deg2_poly_factor; rewrite ?pnatr_eq0// sqrtCK. Qed. + +Lemma deg2_poly_root1 : root p r1. +Proof. by apply: deg2_poly_root1; rewrite ?pnatr_eq0// sqrtCK. Qed. + +Lemma deg2_poly_root2 : root p r2. +Proof. by apply: deg2_poly_root2; rewrite ?pnatr_eq0// sqrtCK. Qed. + +End Pdeg2NumClosed. + +End NumClosed. + +Module NumClosedMonic. + +Export FieldMonic. + +Section Pdeg2NumClosedMonic. + +Variables (F : numClosedFieldType) (p : {poly F}). + +Hypothesis degp : size p = 3%N. +Hypothesis monicp : p \is monic. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let delta := b ^+ 2 - 4 * c. + +Let r1 := (- b - sqrtC delta) / 2. +Let r2 := (- b + sqrtC delta) / 2. + +Lemma deg2_poly_factor : p = ('X - r1%:P) * ('X - r2%:P). +Proof. by apply: deg2_poly_factor; rewrite ?pnatr_eq0// sqrtCK. Qed. + +Lemma deg2_poly_root1 : root p r1. +Proof. by apply: deg2_poly_root1; rewrite ?pnatr_eq0// sqrtCK. Qed. + +Lemma deg2_poly_root2 : root p r2. +Proof. by apply: deg2_poly_root2; rewrite ?pnatr_eq0// sqrtCK. Qed. + +End Pdeg2NumClosedMonic. +End NumClosedMonic. + +Module Real. + +Section Pdeg2Real. + +Variable F : realFieldType. + +Section Pdeg2RealConvex. + +Variable p : {poly F}. +Hypothesis degp : size p = 3%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Hypothesis age0 : 0 <= a. + +Let delta := b ^+ 2 - 4 * a * c. + +Let pneq0 : p != 0. Proof. by rewrite -size_poly_gt0 degp. Qed. +Let aneq0 : a != 0. +Proof. by move: pneq0; rewrite -lead_coef_eq0 lead_coefE degp. Qed. +Let agt0 : 0 < a. Proof. by rewrite lt_def aneq0. Qed. +Let a4gt0 : 0 < 4 * a. Proof. by rewrite mulr_gt0 ?ltr0n. Qed. + +Lemma deg2_poly_min x : p.[- b / (2 * a)] <= p.[x]. +Proof. +rewrite [p]deg2_poly_canonical ?pnatr_eq0// -/a -/b -/c /delta !hornerE/=. +by rewrite ler_pM2l// lerD2r addrC mulNr subrr expr0n sqr_ge0. +Qed. + +Lemma deg2_poly_minE : p.[- b / (2 * a)] = - delta / (4 * a). +Proof. +rewrite [p]deg2_poly_canonical ?pnatr_eq0// -/a -/b -/c -/delta !hornerE/=. +rewrite [X in X^+2]addrC [in LHS]mulNr subrr expr0n add0r mulNr. +by rewrite mulrC mulNr invfM mulrA mulfVK. +Qed. + +Lemma deg2_poly_gt0 : reflect (forall x, 0 < p.[x]) (delta < 0). +Proof. +apply/(iffP idP) => [dlt0 x | /(_ (- b / (2 * a)))]; last first. + by rewrite deg2_poly_minE ltr_pdivlMr// mul0r oppr_gt0. +apply: lt_le_trans (deg2_poly_min _). +by rewrite deg2_poly_minE ltr_pdivlMr// mul0r oppr_gt0. +Qed. + +Lemma deg2_poly_ge0 : reflect (forall x, 0 <= p.[x]) (delta <= 0). +Proof. +apply/(iffP idP) => [dlt0 x | /(_ (- b / (2 * a)))]; last first. + by rewrite deg2_poly_minE ler_pdivlMr// mul0r oppr_ge0. +apply: le_trans (deg2_poly_min _). +by rewrite deg2_poly_minE ler_pdivlMr// mul0r oppr_ge0. +Qed. + +End Pdeg2RealConvex. + +Section Pdeg2RealConcave. + +Variable p : {poly F}. +Hypothesis degp : size p = 3%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Hypothesis ale0 : a <= 0. + +Let delta := b ^+ 2 - 4 * a * c. + +Let degpN : size (- p) = 3%N. Proof. by rewrite size_opp. Qed. +Let b2a : - (- p)`_1 / (2 * (- p)`_2) = - b / (2 * a). +Proof. by rewrite !coefN mulrN divrNN. Qed. +Let deltaN : (- p)`_1 ^+ 2 - 4 * (- p)`_2 * (- p)`_0 = delta. +Proof. by rewrite !coefN sqrrN -mulrN opprK mulrN mulNr. Qed. + +Lemma deg2_poly_max x : p.[x] <= p.[- b / (2 * a)]. +Proof. by rewrite -lerN2 -!hornerN -b2a deg2_poly_min// coefN oppr_ge0. Qed. + +Lemma deg2_poly_maxE : p.[- b / (2 * a)] = - delta / (4 * a). +Proof. +apply/eqP; rewrite [eqbRHS]mulNr -eqr_oppLR -hornerN -b2a. +by rewrite deg2_poly_minE// deltaN coefN mulrN divrNN. +Qed. + +Lemma deg2_poly_lt0 : reflect (forall x, p.[x] < 0) (delta < 0). +Proof. +rewrite -deltaN; apply/(iffP (deg2_poly_gt0 _ _)); rewrite ?coefN ?oppr_ge0//. +- by move=> gt0 x; rewrite -oppr_gt0 -hornerN gt0. +- by move=> lt0 x; rewrite hornerN oppr_gt0 lt0. +Qed. + +Lemma deg2_poly_le0 : reflect (forall x, p.[x] <= 0) (delta <= 0). +Proof. +rewrite -deltaN; apply/(iffP (deg2_poly_ge0 _ _)); rewrite ?coefN ?oppr_ge0//. +- by move=> ge0 x; rewrite -oppr_ge0 -hornerN ge0. +- by move=> le0 x; rewrite hornerN oppr_ge0 le0. +Qed. + +End Pdeg2RealConcave. +End Pdeg2Real. + +Section Pdeg2RealClosed. + +Variable F : rcfType. + +Section Pdeg2RealClosedConvex. + +Variable p : {poly F}. +Hypothesis degp : size p = 3%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let pneq0 : p != 0. Proof. by rewrite -size_poly_gt0 degp. Qed. +Let aneq0 : a != 0. +Proof. by move: pneq0; rewrite -lead_coef_eq0 lead_coefE degp. Qed. +Let sqa2 : 4 * a ^+ 2 = (2 * a) ^+ 2. Proof. by rewrite exprMn -natrX. Qed. +Let nz2 : 2 != 0 :> F. Proof. by rewrite pnatr_eq0. Qed. + +Let delta := b ^+ 2 - 4 * a * c. + +Let r1 := (- b - sqrt delta) / (2 * a). +Let r2 := (- b + sqrt delta) / (2 * a). + +Lemma deg2_poly_factor : 0 <= delta -> p = a *: ('X - r1%:P) * ('X - r2%:P). +Proof. by move=> dge0; apply: deg2_poly_factor; rewrite ?sqr_sqrtr. Qed. + +Lemma deg2_poly_root1 : 0 <= delta -> root p r1. +Proof. by move=> dge0; apply: deg2_poly_root1; rewrite ?sqr_sqrtr. Qed. + +Lemma deg2_poly_root2 : 0 <= delta -> root p r2. +Proof. by move=> dge0; apply: deg2_poly_root2; rewrite ?sqr_sqrtr. Qed. + +Lemma deg2_poly_noroot : reflect (forall x, ~~ root p x) (delta < 0). +Proof. +apply/(iffP idP) => [dlt0 x | /(_ r1)]. + case: ltgtP aneq0 => [agt0 _|alt0 _|//]; rewrite rootE; last first. + exact/lt0r_neq0/(deg2_poly_gt0 degp (ltW alt0)). + rewrite -oppr_eq0 -hornerN. + apply/lt0r_neq0/deg2_poly_gt0; rewrite ?size_opp ?coefN ?oppr_ge0 ?ltW//. + by rewrite sqrrN -mulrA mulrNN mulrA. +by rewrite ltNge; apply: contraNN => ?; apply: deg2_poly_root1. +Qed. + +Hypothesis age0 : 0 <= a. + +Let agt0 : 0 < a. Proof. by rewrite lt_def aneq0. Qed. +Let a2gt0 : 0 < 2 * a. Proof. by rewrite mulr_gt0 ?ltr0n. Qed. +Let a4gt0 : 0 < 4 * a. Proof. by rewrite mulr_gt0 ?ltr0n. Qed. +Let aa4gt0 : 0 < 4 * a * a. Proof. by rewrite mulr_gt0 ?ltr0n. Qed. + +Let xb4 x : (x + b / (2 * a)) ^+ 2 * (4 * a * a) = (x * (2 * a) + b) ^+ 2. +Proof. +have -> : 4 * a * a = (2 * a) ^+ 2 by rewrite expr2 mulrACA -natrM mulrA. +by rewrite -exprMn mulrDl mulfVK ?mulf_neq0 ?pnatr_eq0. +Qed. + +Lemma deg2_poly_gt0l x : x < r1 -> 0 < p.[x]. +Proof. +move=> xltr1; have [? | dge0] := ltP delta 0; first exact: deg2_poly_gt0. +have {}xltr1 : sqrt delta < - (x * (2 * a) + b). + by rewrite ltrNr -ltrBrDr addrC -ltr_pdivlMr. +rewrite [p]deg2_poly_canonical// -/a -/b -/c -/delta !hornerE/=. +rewrite mulr_gt0// subr_gt0 ltr_pdivrMr// xb4 -sqrrN. +rewrite -ltr_sqrt ?sqrtr_sqr ?(lt_le_trans xltr1) ?ler_norm//. +by rewrite exprn_gt0 ?(le_lt_trans _ xltr1) ?sqrtr_ge0. +Qed. + +Lemma deg2_poly_gt0r x : r2 < x -> 0 < p.[x]. +Proof. +move=> xgtr2; have [? | dge0] := ltP delta 0; first exact: deg2_poly_gt0. +have {}xgtr2 : sqrt delta < x * (2 * a) + b. + by rewrite -ltrBlDr addrC -ltr_pdivrMr. +rewrite [p]deg2_poly_canonical// -/a -/b -/c -/delta !hornerE/=. +rewrite mulr_gt0// subr_gt0 ltr_pdivrMr// xb4. +rewrite -ltr_sqrt ?sqrtr_sqr ?(lt_le_trans xgtr2) ?ler_norm//. +by rewrite exprn_gt0 ?(le_lt_trans _ xgtr2) ?sqrtr_ge0. +Qed. + +Lemma deg2_poly_lt0m x : r1 < x < r2 -> p.[x] < 0. +Proof. +move=> /andP[r1ltx xltr2]. +have [dle0 | dgt0] := leP delta 0. + by move: (lt_trans r1ltx xltr2); rewrite /r1 /r2 ler0_sqrtr// oppr0 ltxx. +rewrite [p]deg2_poly_canonical// !hornerE/= -/a -/b -/c -/delta. +rewrite pmulr_rlt0// subr_lt0 ltr_pdivlMr// xb4 -ltr_sqrt// sqrtr_sqr ltr_norml. +by rewrite -ltrBlDr addrC -ltr_pdivrMr// r1ltx -ltrBrDr addrC -ltr_pdivlMr. +Qed. + +Lemma deg2_poly_ge0l x : x <= r1 -> 0 <= p.[x]. +Proof. +rewrite le_eqVlt => /orP[/eqP->|xltr1]; last exact/ltW/deg2_poly_gt0l. +have [dge0|dlt0] := leP 0 delta; last by apply: deg2_poly_ge0 => //; apply: ltW. +by rewrite le_eqVlt (rootP (deg2_poly_root1 dge0)) eqxx. +Qed. + +Lemma deg2_poly_ge0r x : r2 <= x -> 0 <= p.[x]. +Proof. +rewrite le_eqVlt => /orP[/eqP<-|xgtr2]; last exact/ltW/deg2_poly_gt0r. +have [dge0|dlt0] := leP 0 delta; last by apply: deg2_poly_ge0 => //; apply: ltW. +by rewrite le_eqVlt (rootP (deg2_poly_root2 dge0)) eqxx. +Qed. + +Lemma deg2_poly_le0m x : 0 <= delta -> r1 <= x <= r2 -> p.[x] <= 0. +Proof. +move=> dge0; rewrite le_eqVlt andb_orl => /orP[/andP[/eqP<- _]|]. + by rewrite le_eqVlt (rootP (deg2_poly_root1 dge0)) eqxx. +rewrite le_eqVlt andb_orr => /orP[/andP[_ /eqP->]|]. + by rewrite le_eqVlt (rootP (deg2_poly_root2 dge0)) eqxx. +by move=> ?; apply/ltW/deg2_poly_lt0m. +Qed. + +End Pdeg2RealClosedConvex. + +Section Pdeg2RealClosedConcave. + +Variable p : {poly F}. +Hypothesis degp : size p = 3%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let delta := b ^+ 2 - 4 * a * c. + +Let r1 := (- b + sqrt delta) / (2 * a). +Let r2 := (- b - sqrt delta) / (2 * a). + +Hypothesis ale0 : a <= 0. + +Let degpN : size (- p) = 3%N. Proof. by rewrite size_opp. Qed. +Let aNge0 : 0 <= (- p)`_2. Proof. by rewrite coefN oppr_ge0. Qed. +Let deltaN : (- p)`_1 ^+ 2 - 4 * (- p)`_2 * (- p)`_0 = delta. +Proof. by rewrite !coefN sqrrN -mulrN opprK mulrN mulNr. Qed. +Let r1N : (- (- p)`_1 - sqrt delta) / (2 * (- p)`_2) = r1. +Proof. by rewrite !coefN -opprD mulrN divrNN. Qed. +Let r2N : (- (- p)`_1 + sqrt delta) / (2 * (- p)`_2) = r2. +Proof. by rewrite !coefN mulrN divrN -mulNr opprK opprD. Qed. + +Lemma deg2_poly_lt0l x : x < r1 -> p.[x] < 0. +Proof. by move=> ?; rewrite -oppr_gt0 -hornerN deg2_poly_gt0l// deltaN r1N. Qed. + +Lemma deg2_poly_lt0r x : r2 < x -> p.[x] < 0. +Proof. by move=> ?; rewrite -oppr_gt0 -hornerN deg2_poly_gt0r// deltaN r2N. Qed. + +Lemma deg2_poly_gt0m x : r1 < x < r2 -> 0 < p.[x]. +Proof. +by move=> ?; rewrite -oppr_lt0 -hornerN deg2_poly_lt0m// deltaN r1N r2N. +Qed. + +Lemma deg2_poly_le0l x : x <= r1 -> p.[x] <= 0. +Proof. by move=> ?; rewrite -oppr_ge0 -hornerN deg2_poly_ge0l// deltaN r1N. Qed. + +Lemma deg2_poly_le0r x : r2 <= x -> p.[x] <= 0. +Proof. by move=> ?; rewrite -oppr_ge0 -hornerN deg2_poly_ge0r// deltaN r2N. Qed. + +Lemma deg2_poly_ge0m x : 0 <= delta -> r1 <= x <= r2 -> 0 <= p.[x]. +Proof. +by move=> ? ?; rewrite -oppr_le0 -hornerN deg2_poly_le0m ?deltaN// r1N r2N. +Qed. + +End Pdeg2RealClosedConcave. +End Pdeg2RealClosed. +End Real. + +Module RealMonic. + +Import Real. +Export FieldMonic. + +Section Pdeg2RealMonic. + +Variable F : realFieldType. + +Variable p : {poly F}. +Hypothesis degp : size p = 3%N. +Hypothesis monicp : p \is monic. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let delta := b ^+ 2 - 4 * c. + +Let a1 : a = 1. Proof. by move: (monicP monicp); rewrite lead_coefE degp. Qed. +Let a2 : 2 * a = 2. Proof. by rewrite a1 mulr1. Qed. +Let a4 : 4 * a = 4. Proof. by rewrite a1 mulr1. Qed. + +Lemma deg2_poly_min x : p.[- b / 2] <= p.[x]. +Proof. by rewrite -a2 deg2_poly_min -/a ?a1 ?ler01. Qed. + +Let deltam : delta = b ^+ 2 - 4 * a * c. Proof. by rewrite a1 mulr1. Qed. + +Lemma deg2_poly_minE : p.[- b / 2] = - delta / 4. +Proof. by rewrite -a2 -a4 deltam deg2_poly_minE. Qed. + +Lemma deg2_poly_gt0 : reflect (forall x, 0 < p.[x]) (delta < 0). +Proof. by rewrite deltam; apply: deg2_poly_gt0; rewrite // -/a a1 ler01. Qed. + +Lemma deg2_poly_ge0 : reflect (forall x, 0 <= p.[x]) (delta <= 0). +Proof. by rewrite deltam; apply: deg2_poly_ge0; rewrite // -/a a1 ler01. Qed. + +End Pdeg2RealMonic. + +Section Pdeg2RealClosedMonic. + +Variables (F : rcfType) (p : {poly F}). +Hypothesis degp : size p = 3%N. +Hypothesis monicp : p \is monic. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let a1 : a = 1. Proof. by move: (monicP monicp); rewrite lead_coefE degp. Qed. + +Let delta := b ^+ 2 - 4 * c. + +Let deltam : delta = b ^+ 2 - 4 * a * c. Proof. by rewrite a1 mulr1. Qed. + +Let r1 := (- b - sqrt delta) / 2. +Let r2 := (- b + sqrt delta) / 2. + +Let nz2 : 2 != 0 :> F. Proof. by rewrite pnatr_eq0. Qed. + +Lemma deg2_poly_factor : 0 <= delta -> p = ('X - r1%:P) * ('X - r2%:P). +Proof. by move=> dge0; apply: deg2_poly_factor; rewrite ?sqr_sqrtr. Qed. + +Lemma deg2_poly_root1 : 0 <= delta -> root p r1. +Proof. by move=> dge0; apply: deg2_poly_root1; rewrite ?sqr_sqrtr. Qed. + +Lemma deg2_poly_root2 : 0 <= delta -> root p r2. +Proof. by move=> dge0; apply: deg2_poly_root2; rewrite ?sqr_sqrtr. Qed. + +Lemma deg2_poly_noroot : reflect (forall x, ~~ root p x) (delta < 0). +Proof. by rewrite deltam; apply: deg2_poly_noroot. Qed. + +Lemma deg2_poly_gt0l x : x < r1 -> 0 < p.[x]. +Proof. +by move=> ?; apply: deg2_poly_gt0l; rewrite // -/a ?a1 ?ler01 ?mulr1. +Qed. + +Lemma deg2_poly_gt0r x : r2 < x -> 0 < p.[x]. +Proof. +by move=> ?; apply: deg2_poly_gt0r; rewrite // -/a ?a1 ?ler01 ?mulr1. +Qed. + +Lemma deg2_poly_lt0m x : r1 < x < r2 -> p.[x] < 0. +Proof. +by move=> ?; apply: deg2_poly_lt0m; rewrite // -/a ?a1 ?ler01 ?mulr1. +Qed. + +Lemma deg2_poly_ge0l x : x <= r1 -> 0 <= p.[x]. +Proof. +by move=> ?; apply: deg2_poly_ge0l; rewrite // -/a ?a1 ?ler01 ?mulr1. +Qed. + +Lemma deg2_poly_ge0r x : r2 <= x -> 0 <= p.[x]. +Proof. +by move=> ?; apply: deg2_poly_ge0r; rewrite // -/a ?a1 ?ler01 ?mulr1. +Qed. + +Lemma deg2_poly_le0m x : 0 <= delta -> r1 <= x <= r2 -> p.[x] <= 0. +move=> dge0 xm. +by apply: deg2_poly_le0m; rewrite -/a -/b -/c ?a1 ?mulr1 -/delta ?ler01. +Qed. + +End Pdeg2RealClosedMonic. +End RealMonic. +End Pdeg2. + +Section Degle2PolyRealConvex. + +Variable (F : realFieldType) (p : {poly F}). +Hypothesis degp : (size p <= 3)%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let delta := b ^+ 2 - 4 * a * c. + +Lemma deg_le2_poly_delta_ge0 : 0 <= a -> (forall x, 0 <= p.[x]) -> delta <= 0. +Proof. +move=> age0 pge0; move: degp; rewrite leq_eqVlt => /orP[/eqP|] degp'. + exact/(Real.deg2_poly_ge0 degp' age0). +have a0 : a = 0 by rewrite /a nth_default. +rewrite /delta a0 mulr0 mul0r subr0 exprn_even_le0//=. +have [//|/eqP nzb] := eqP; move: (pge0 ((- 1 - c) / b)). +have -> : p = b *: 'X + c%:P. + apply/polyP => + /[!coefE] => -[|[|i]] /=; rewrite !Monoid.simpm//. + by rewrite nth_default// -ltnS (leq_trans degp'). +by rewrite !hornerE/= mulrAC mulfV// mul1r subrK ler0N1. +Qed. + +End Degle2PolyRealConvex. + +Section Degle2PolyRealConcave. + +Variable (F : realFieldType) (p : {poly F}). +Hypothesis degp : (size p <= 3)%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let delta := b ^+ 2 - 4 * a * c. + +Lemma deg_le2_poly_delta_le0 : a <= 0 -> (forall x, p.[x] <= 0) -> delta <= 0. +Proof. +move=> ale0 ple0; rewrite /delta -sqrrN -[c]opprK mulrN -mulNr -[-(4 * a)]mulrN. +rewrite -!coefN deg_le2_poly_delta_ge0 ?size_opp ?coefN ?oppr_ge0// => x. +by rewrite hornerN oppr_ge0. +Qed. + +End Degle2PolyRealConcave. + +Section Degle2PolyRealClosedConvex. + +Variable (F : rcfType) (p : {poly F}). +Hypothesis degp : (size p <= 3)%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let delta := b ^+ 2 - 4 * a * c. + +Lemma deg_le2_poly_ge0 : (forall x, 0 <= p.[x]) -> delta <= 0. +Proof. +have [age0|alt0] := leP 0 a; first exact: deg_le2_poly_delta_ge0. +move=> pge0; move: degp; rewrite leq_eqVlt => /orP[/eqP|] degp'; last first. + by move: alt0; rewrite /a nth_default ?ltxx. +have [//|dge0] := leP delta 0. +pose r1 := (- b - sqrt delta) / (2 * a). +pose r2 := (- b + sqrt delta) / (2 * a). +pose x0 := Num.max (r1 + 1) (r2 + 1). +move: (pge0 x0); rewrite (Real.deg2_poly_factor degp' (ltW dge0)). +rewrite !hornerE/= -mulrA nmulr_rge0// leNgt => /negbTE<-. +by apply: mulr_gt0; rewrite subr_gt0 lt_max ltrDl ltr01 ?orbT. +Qed. + +End Degle2PolyRealClosedConvex. + +Section Degle2PolyRealClosedConcave. + +Variable (F : rcfType) (p : {poly F}). +Hypothesis degp : (size p <= 3)%N. + +Let a := p`_2. +Let b := p`_1. +Let c := p`_0. + +Let delta := b ^+ 2 - 4 * a * c. + +Lemma deg_le2_poly_le0 : (forall x, p.[x] <= 0) -> delta <= 0. +Proof. +move=> ple0; rewrite /delta -sqrrN -[c]opprK mulrN -mulNr -[-(4 * a)]mulrN. +by rewrite -!coefN deg_le2_poly_ge0 ?size_opp// => x; rewrite hornerN oppr_ge0. +Qed. + +End Degle2PolyRealClosedConcave. + (*************) (* FACTORIES *) (*************) diff --git a/mathcomp/algebra/zmodp.v b/mathcomp/algebra/zmodp.v index 505fda9199..0e3e057b5d 100644 --- a/mathcomp/algebra/zmodp.v +++ b/mathcomp/algebra/zmodp.v @@ -262,6 +262,24 @@ Notation "''F_' p" := 'Z_(pdiv p) Arguments natr_Zp {p'} x. +Section ZpRing. + +Import GRing.Theory. + +Lemma add_1_Zp p (x : 'Z_p) : 1 + x = ordS x. +Proof. by case: p => [|[|p]] in x *; apply/val_inj. Qed. + +Lemma add_Zp_1 p (x : 'Z_p) : x + 1 = ordS x. +Proof. by rewrite addrC add_1_Zp. Qed. + +Lemma sub_Zp_1 p (x : 'Z_p) : x - 1 = ord_pred x. +Proof. by apply: (addIr 1); rewrite addrNK add_Zp_1 ord_predK. Qed. + +Lemma add_N1_Zp p (x : 'Z_p) : -1 + x = ord_pred x. +Proof. by rewrite addrC sub_Zp_1. Qed. + +End ZpRing. + Section Groups. Variable p : nat. @@ -324,7 +342,7 @@ Section F_prime. Hypothesis p_pr : prime p. -Lemma Fp_Zcast : (Zp_trunc (pdiv p)).+2 = (Zp_trunc p).+2. +Lemma Fp_Zcast : Zp_trunc (pdiv p) = Zp_trunc p. Proof. by rewrite /pdiv primes_prime. Qed. Lemma Fp_cast : (Zp_trunc (pdiv p)).+2 = p. diff --git a/mathcomp/character/Make b/mathcomp/character/Make index 54447be8b9..849cc36c9e 100644 --- a/mathcomp/character/Make +++ b/mathcomp/character/Make @@ -17,3 +17,6 @@ vcharacter.v -arg -w -arg +undeclared-scope -arg -w -arg +deprecated-hint-without-locality -arg -w -arg +deprecated-hint-rewrite-without-locality +-arg -w -arg -opaque-let +-arg -w -arg -argument-scope-delimiter +-arg -w -arg -overwriting-delimiting-key diff --git a/mathcomp/field/Make b/mathcomp/field/Make index effee7be80..0e4e288ccf 100644 --- a/mathcomp/field/Make +++ b/mathcomp/field/Make @@ -9,6 +9,7 @@ fieldext.v finfield.v galois.v separable.v +qfpoly.v -R . mathcomp.field @@ -20,3 +21,6 @@ separable.v -arg -w -arg +undeclared-scope -arg -w -arg +deprecated-hint-without-locality -arg -w -arg +deprecated-hint-rewrite-without-locality +-arg -w -arg -opaque-let +-arg -w -arg -argument-scope-delimiter +-arg -w -arg -overwriting-delimiting-key diff --git a/mathcomp/field/algC.v b/mathcomp/field/algC.v index c38f2a2ed2..6f3d66e86b 100644 --- a/mathcomp/field/algC.v +++ b/mathcomp/field/algC.v @@ -643,7 +643,7 @@ Definition CintrE := (rmorphMz ZtoCm, @intr_norm CnF, @intr_sg CnF), =^~ (@ler_int CnF, @ltr_int CnF, (inj_eq (@intr_inj CnF)))). -Let nz2 : 2 != 0 :> algC. Proof. by rewrite -!CintrE. Qed. +Let nz2 : 2 != 0 :> algC. Proof. by rewrite pnatr_eq0. Qed. (* Conjugation and norm. *) diff --git a/mathcomp/field/algebraics_fundamentals.v b/mathcomp/field/algebraics_fundamentals.v index 63aa266a78..2f476929a7 100644 --- a/mathcomp/field/algebraics_fundamentals.v +++ b/mathcomp/field/algebraics_fundamentals.v @@ -504,8 +504,8 @@ have add_Rroot xR p c: {yR | extendsR xR yR & has_Rroot xR p c -> root_in yR p}. have /(find_root r.1)[n ub_rp] := xab0; exists n. have [M Mgt0 ubM]: {M | 0 < M & {in Iab_ n, forall a, `|r.2.[a]| <= M}}. have [M ubM] := poly_itv_bound r.2 (ab_ n).1 (ab_ n).2. - exists (Num.max 1 M) => [|s /ubM vM]; first by rewrite lt_maxr ltr01. - by rewrite le_maxr orbC vM. + exists (Num.max 1 M) => [|s /ubM vM]; first by rewrite lt_max ltr01. + by rewrite le_max orbC vM. exists (h2 / M) => [|a xn_a]; first by rewrite divr_gt0 ?invr_gt0 ?ltr0n. rewrite ltr_pdivrMr // -(ltrD2l h2) -mulr2n -mulr_natl divff //. rewrite -normr1 -(hornerC 1 a) -[1%:P]r_pq_1 hornerD. diff --git a/mathcomp/field/all_field.v b/mathcomp/field/all_field.v index 2641bbe45a..11ebcf61a0 100644 --- a/mathcomp/field/all_field.v +++ b/mathcomp/field/all_field.v @@ -8,3 +8,4 @@ Require Export fieldext. Require Export finfield. Require Export galois. Require Export separable. +Require Export qfpoly. diff --git a/mathcomp/field/qfpoly.v b/mathcomp/field/qfpoly.v new file mode 100644 index 0000000000..207ffca28d --- /dev/null +++ b/mathcomp/field/qfpoly.v @@ -0,0 +1,506 @@ +From mathcomp +Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq choice fintype tuple. +From mathcomp +Require Import div bigop binomial finset finfun ssralg countalg finalg. +From mathcomp +Require Import poly polydiv qpoly perm fingroup falgebra fieldext finfield + galois. +From mathcomp +Require Import finalg zmodp matrix vector. + +(******************************************************************************) +(* This file extends the algebras R[X]/

defined in qpoly with the field *) +(* when p is irreducible *) +(* It defines the new field on top of {qpoly p}. As irreducible is in general *) +(* decidable in general, this is done by giving a proof explicitely. *) +(* monic_irreducible_poly p == proof that p is monic and irreducible *) +(* {poly %/ p with mi} == defined as {poly %/ p} where mi is proof of *) +(* monic_irreducible_poly p *) +(* It also defines the discrete logarithm with a primitive polynomial on a *) +(* finite field *) +(* primitive_poly p == p is a primitive polynomial *) +(* qlogp q == is the discrete log of q where q is an element of *) +(* the quotient field with respect to a primitive *) +(* polynomial p *) +(* plogp p q == is the discrete log of q with respect to p in {poly F} *) +(* this makes only sense if p is a primitive polynomial of *) +(* size > 2 *) +(******************************************************************************) + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Import GRing.Theory. +Import Pdiv.CommonRing. +Import Pdiv.RingMonic. +Import Pdiv.Field. +Import FinRing.Theory. +Local Open Scope ring_scope. + +Reserved Notation "{ 'poly' '%/' p 'with' mi }" + (at level 0, p at level 2, mi at level 10, + format "{ 'poly' '%/' p 'with' mi }"). + +Section DomainDef. + +Variable R : idomainType. +Variable h : {poly R}. + +Definition monic_irreducible_poly (p : {poly R}) := + ((irreducible_poly p) * (p \is monic))%type. +Hypothesis hI : monic_irreducible_poly h. + +Definition qfpoly : monic_irreducible_poly h -> predArgType := + fun=> {poly %/ h}. + +End DomainDef. + +Notation "{ 'poly' '%/' p 'with' hi }" := (@qfpoly _ p hi). + + +Section iDomain. + +Variable R : idomainType. +Variable h : {poly R}. +Hypothesis hI : monic_irreducible_poly h. + +Canonical qfpoly_eqType := [eqType of {poly %/ h with hI}]. +Canonical qfpoly_choiceType := [choiceType of {poly %/ h with hI}]. +Canonical qfpoly_zmodType := [zmodType of {poly %/ h with hI}]. +Canonical qfpoly_ringType := [ringType of {poly %/ h with hI}]. + +End iDomain. + +Section finIDomain. + +Variable R : finIdomainType. +Variable h : {poly R}. +Hypothesis hI : monic_irreducible_poly h. + +Canonical qfpoly_finZmodType := [finZmodType of {poly %/ h with hI}]. +Canonical qfpoly_finRingType := [finRingType of {poly %/ h with hI}]. + +End finIDomain. + +Section Field. + +Variable R : fieldType. +Variable h : {poly R}. + +Local Notation hQ := (mk_monic h). + +Hypothesis hI : monic_irreducible_poly h. + +Canonical qfpoly_unitRingType := [unitRingType of {poly %/ h with hI}]. +Canonical qfpoly_comRingType := [comRingType of {poly %/ h with hI}]. +Canonical qfpoly_comUnitRingType := [comUnitRingType of {poly %/ h with hI}]. + +Lemma mk_monicE : mk_monic h = h. +Proof. by rewrite /mk_monic !hI. Qed. + +Lemma coprimep_unit (p : {poly %/ h}) : p != 0%R -> coprimep hQ p. +Proof. +move=> pNZ. +rewrite irreducible_poly_coprime //; last first. + by case: hI; rewrite mk_monicE. +apply: contra pNZ => H; case: eqP => // /eqP /dvdp_leq /(_ H). +by rewrite leqNgt size_mk_monic. +Qed. + +Lemma qpoly_mulVp (p : {poly %/ h}) : p != 0%R -> (qpoly_inv p * p = 1)%R. +Proof. by move=> pNZ; apply/qpoly_mulVz/coprimep_unit. Qed. + +Lemma qpoly_inv0 : qpoly_inv 0%R = 0%R :> {poly %/ h}. +Proof. +rewrite /qpoly_inv /= coprimep0 -size_poly_eq1. +rewrite [in X in X == _]mk_monicE. +by have [[]] := hI; case: size => [|[]]. +Qed. + +Definition qpoly_fieldUnitMixin := FieldUnitMixin qpoly_mulVp qpoly_inv0. + +Lemma qpoly_fieldMixin : GRing.Field.mixin_of [unitRingType of {poly %/ h}]. +Proof. by apply: coprimep_unit. Qed. + +Definition qpoly_fieldIdomainMixin := FieldIdomainMixin qpoly_fieldMixin. + +Canonical qpoly_idomainType := + Eval hnf in IdomainType {poly %/ h with hI} qpoly_fieldIdomainMixin. +Canonical qpoly_fieldType := + Eval hnf in FieldType {poly %/ h with hI} qpoly_fieldMixin. +Canonical qpoly_unitAlgType := + Eval hnf in [unitAlgType R of {poly %/ h with hI}]. +Canonical qpoly_falgType := [FalgType R of {poly %/ h with hI}]. +Canonical qpoly_fieldExtType := [fieldExtType R of {poly %/ h with hI}]. + +End Field. + +Section FinField. + +Variable R : finFieldType. +Variable h : {poly R}. +Local Notation hQ := (mk_monic h). + +Canonical qpoly_finUnitRingType := + Eval hnf in [finUnitRingType of {poly %/ h}]. +Canonical qpoly_finComUnitRingType := + Eval hnf in [finComUnitRingType of {poly %/ h}]. + +Hypothesis hI : monic_irreducible_poly h. + +Canonical qfpoly_finUnitRingType := + Eval hnf in [finUnitRingType of {poly %/ h with hI}]. +Canonical qfpoly_finComRingType := + Eval hnf in [comRingType of {poly %/ h with hI}]. +Canonical qfpoly_finComUnitRingType := + Eval hnf in [comUnitRingType of {poly %/ h with hI}]. +Canonical qpoly_finIdomainType := + Eval hnf in [finIdomainType of {poly %/ h with hI}]. +Canonical qpoly_finFieldType := + Eval hnf in [finFieldType of {poly %/ h with hI}]. + +Lemma card_qfpoly : #|{poly %/ h with hI}| = #|R| ^ (size h).-1. +Proof. by rewrite card_monic_qpoly ?hI. Qed. + +Lemma card_qfpoly_gt1 : 1 < #|{poly %/ h with hI}|. +Proof. by have := card_finRing_gt1 [finRingType of {poly %/ h with hI}]. Qed. + +End FinField. + +Section inPoly. + +Variable R : comRingType. +Variable h : {poly R}. + +Lemma in_qpoly_comp_horner (p q : {poly R}) : + in_qpoly h (p \Po q) = + (map_poly (qpolyC h) p).[in_qpoly h q]. +Proof. +have hQM := monic_mk_monic h. +rewrite comp_polyE /map_poly poly_def horner_sum /=. +apply: val_inj. +rewrite /= rmodp_sum // poly_of_qpoly_sum. +apply: eq_bigr => i _. +rewrite !hornerE /in_qpoly /=. +rewrite mul_polyC // !rmodpZ //=. +by rewrite poly_of_qpolyX /= rmodp_id // rmodpX // rmodp_id. +Qed. + +Lemma map_poly_div_inj : injective (map_poly (qpolyC h)). +Proof. +apply: map_inj_poly => [x y /val_eqP /eqP /polyC_inj //|]. +by rewrite qpolyC0. +Qed. + +End inPoly. + +Section finPoly. + +(* Unfortunately we need some duplications so inference + propagates qfpoly :-( )*) +Definition qfpoly_const (R : idomainType) (h : {poly R}) + (hMI : monic_irreducible_poly h) : R -> {poly %/ h with hMI} := + qpolyC h. + +Lemma map_fpoly_div_inj + (R : idomainType) (h : {poly R}) (hMI : monic_irreducible_poly h) : + injective (map_poly (qfpoly_const hMI)). +Proof. by apply: (@map_poly_div_inj R h). Qed. + +End finPoly. + +Section Splitting. + +Variable F : finFieldType. +Variable h : {poly F}. +Hypothesis hI : monic_irreducible_poly h. + +Definition qfpoly_splitting_field_type := + FinSplittingFieldType F {poly %/ h with hI}. + +End Splitting. + +Section PrimitivePoly. + +Variable F : finFieldType. +Variable h : {poly F}. +Hypothesis sh_gt2 : 2 < size h. +Let sh_gt1 : 1 < size h. +Proof. by apply: leq_ltn_trans sh_gt2. Qed. + +Definition primitive_poly (p: {poly F}) := + let v := #|{poly %/ p}|.-1 in + [&& p \is monic, + irreducibleb p, + p %| 'X^v - 1 & + [forall n : 'I_v, (p %| 'X^n - 1) ==> (n == 0%N :> nat)]]. + +Lemma primitive_polyP (p : {poly F}) : + reflect + (let v := #|{poly %/ p}|.-1 in + [/\ monic_irreducible_poly p, + p %| 'X^v - 1 & + forall n, 0 < n < v -> ~~ (p %| 'X^n - 1)]) + (primitive_poly p). +Proof. +apply: (iffP and4P) => [[H1 H2 H3 /forallP H4] v|[[H1 H2] H3 H4]]; split => //. +- by split => //; apply/irreducibleP. +- move=> n /andP[n_gt0 nLv]; apply/negP => /(implyP (H4 (Ordinal nLv))) /=. + by rewrite eqn0Ngt n_gt0. +- by apply/irreducibleP. +apply/forallP=> [] [[|n] Hn] /=; apply/implyP => pDX //. +by case/negP: (H4 n.+1 Hn). +Qed. + +Hypothesis Hh : primitive_poly h. + +Lemma primitive_mi : monic_irreducible_poly h. +Proof. by case/primitive_polyP: Hh. Qed. + +Lemma primitive_poly_in_qpoly_eq0 p : (in_qpoly h p == 0) = (h %| p). +Proof. +have hM : h \is monic by case/and4P:Hh. +have hMi : monic_irreducible_poly h by apply: primitive_mi. +apply/eqP/idP => [/val_eqP /= | hDp]. + by rewrite -Pdiv.IdomainMonic.modpE mk_monicE. +by apply/val_eqP; rewrite /= -Pdiv.IdomainMonic.modpE mk_monicE. +Qed. + +Local Notation qT := {poly %/ h with primitive_mi}. + +Lemma card_primitive_qpoly : #|{poly %/ h}|= #|F| ^ (size h).-1. +Proof. by rewrite card_monic_qpoly ?primitive_mi. Qed. + +Lemma qX_neq0 : 'qX != 0 :> qT. +Proof. +apply/eqP => /val_eqP/=. +by rewrite [rmodp _ _]qpolyXE ?polyX_eq0 //; case: primitive_mi. +Qed. + +Lemma qX_in_unit : ('qX : qT) \in GRing.unit. +Proof. by rewrite unitfE /= qX_neq0. Qed. + +Definition gX : {unit qT} := FinRing.unit _ qX_in_unit. + +Lemma dvdp_order n : (h %| 'X^n - 1) = (gX ^+ n == 1)%g. +Proof. +have [hM hI] := primitive_mi. +have eqr_add2r (r : ringType) (a b c : r) : (a + c == b + c) = (a == b). + by apply/eqP/eqP => [H|->//]; rewrite -(addrK c a) H addrK. +rewrite -val_eqE /= val_unitX /= -val_eqE /=. +rewrite (poly_of_qpolyX) qpolyXE // mk_monicE //. +rewrite -[in RHS](subrK 1 'X^n) rmodpD //. +rewrite [rmodp 1 h]rmodp_small ?size_poly1 //. +rewrite -[1%:P]add0r polyC1 /= eqr_add2r. +by rewrite dvdpE /=; apply/rmodp_eq0P/eqP. +Qed. + +Lemma gX_order : #[gX]%g = (#|qT|).-1. +Proof. +have /primitive_polyP[Hp1 Hp2 Hp3] := Hh. +set n := _.-1 in Hp2 Hp3 *. +have n_gt0 : 0 < n by rewrite ltn_predRL card_qfpoly_gt1. +have [hM hI] := primitive_mi. +have gX_neq1 : gX != 1%g. + apply/eqP/val_eqP/eqP/val_eqP=> /=. + rewrite [X in X != _]qpolyXE /= //. + by apply/eqP=> Hx1; have := @size_polyX F; rewrite Hx1 size_poly1. +have Hx : (gX ^+ n)%g = 1%g by apply/eqP; rewrite -dvdp_order. +have Hf i : 0 < i < n -> (gX ^+ i != 1)%g by rewrite -dvdp_order => /Hp3. +have o_gt0 : 0 < #[gX]%g by rewrite order_gt0. +have : n <= #[gX]%g. + rewrite leqNgt; apply/negP=> oLx. + have /Hf/eqP[] : 0 < #[gX]%g < n by rewrite o_gt0. + by rewrite expg_order. +case: ltngtP => nLo _ //. +have: uniq (path.traject (mulg gX) 1%g #[gX]%g). + by apply/card_uniqP; rewrite path.size_traject -(eq_card (cycle_traject gX)). +case: #[gX]%g o_gt0 nLo => //= n1 _ nLn1 /andP[/negP[]]. +apply/path.trajectP; exists n.-1; first by rewrite prednK. +rewrite -iterSr prednK // -[LHS]Hx. +by elim: (n) => //= n2 <-; rewrite expgS. +Qed. + +Lemma gX_all : <[gX]>%g = [set: {unit qT}]%G. +Proof. +apply/eqP; rewrite eqEcard; apply/andP; split. + by apply/subsetP=> i; rewrite inE. +rewrite leq_eqVlt; apply/orP; left; apply/eqP. +rewrite -orderE gX_order card_qfpoly -[in RHS](mk_monicE primitive_mi). +rewrite -card_qpoly -(cardC1 (0 : {poly %/ h with primitive_mi})). +rewrite cardsT card_sub. +by apply: eq_card => x; rewrite unitfE. +Qed. + +Let pred_card_qT_gt0 : 0 < #|qT|.-1. +Proof. by rewrite ltn_predRL card_qfpoly_gt1. Qed. + +Definition qlogp (p : qT) : nat := + odflt (Ordinal pred_card_qT_gt0) (pick [pred i in 'I_ _ | ('qX ^+ i == p)]). + +Lemma qlogp_lt p : qlogp p < #|qT|.-1. +Proof. by rewrite /qlogp; case: pickP. Qed. + +Lemma qlogp_qX (p : qT) : p != 0 -> 'qX ^+ (qlogp p) = p. +Proof. +move=> p_neq0. +have Up : p \in GRing.unit by rewrite unitfE. +pose gp : {unit qT}:= FinRing.unit _ Up. +have /cyclePmin[i iLc iX] : gp \in <[gX]>%g by rewrite gX_all inE. +rewrite gX_order in iLc. +rewrite /qlogp; case: pickP => [j /eqP//|/(_ (Ordinal iLc))] /eqP[]. +by have /val_eqP/eqP/= := iX; rewrite FinRing.val_unitX. +Qed. + +Lemma qX_order_card : 'qX ^+ (#|qT|).-1 = 1 :> qT. +Proof. +have /primitive_polyP [_ Hd _] := Hh. +rewrite dvdp_order in Hd. +have -> : 1 = val (1%g : {unit qT}) by []. +by rewrite -(eqP Hd) val_unitX. +Qed. + +Lemma qX_order_dvd (i : nat) : 'qX ^+ i = 1 :> qT -> (#|qT|.-1 %| i)%N. +Proof. +rewrite -gX_order cyclic.order_dvdn => Hd. +by apply/eqP/val_inj; rewrite /= -Hd val_unitX. +Qed. + +Lemma qlogp0 : qlogp 0 = 0%N. +Proof. +rewrite /qlogp; case: pickP => //= x. +by rewrite (expf_eq0 ('qX : qT)) (negPf qX_neq0) andbF. +Qed. + +Lemma qlogp1 : qlogp 1 = 0%N. +Proof. +case: (qlogp 1 =P 0%N) => // /eqP log1_neq0. +have := qlogp_lt 1; rewrite ltnNge => /negP[]. +apply: dvdn_leq; first by rewrite lt0n. +by rewrite qX_order_dvd // qlogp_qX ?oner_eq0. +Qed. + +Lemma qlogp_eq0 (q : qT) : (qlogp q == 0%N) = (q == 0) || (q == 1). +Proof. +case: (q =P 0) => [->|/eqP q_neq0]/=; first by rewrite qlogp0. +case: (q =P 1) => [->|/eqP q_neq1]/=; first by rewrite qlogp1. +rewrite /qlogp; case: pickP => [x|/(_ (Ordinal (qlogp_lt q)))] /=. + by case: ((x : nat) =P 0%N) => // ->; rewrite expr0 eq_sym (negPf q_neq1). +by rewrite qlogp_qX // eqxx. +Qed. + +Lemma qX_exp_neq0 i : 'qX ^+ i != 0 :> qT. +Proof. by rewrite expf_eq0 negb_and qX_neq0 orbT. Qed. + +Lemma qX_exp_inj i j : + i < #|qT|.-1 -> j < #|qT|.-1 -> 'qX ^+ i = 'qX ^+ j :> qT -> i = j. +Proof. +wlog iLj : i j / (i <= j)%N => [Hw|] iL jL Hqx. + case: (ltngtP i j)=> // /ltnW iLj; first by apply: Hw. + by apply/sym_equal/Hw. +suff ji_eq0 : (j - i = 0)%N by rewrite -(subnK iLj) ji_eq0. +case: ((j - i)%N =P 0%N) => // /eqP ji_neq0. +have : j - i < #|qT|.-1 by apply: leq_ltn_trans (leq_subr _ _) jL. +rewrite ltnNge => /negP[]. +apply: dvdn_leq; first by rewrite lt0n. +have HqXi : 'qX ^+ i != 0 :> qT by rewrite expf_eq0 (negPf qX_neq0) andbF. +by apply/qX_order_dvd/(mulIf HqXi); rewrite mul1r -exprD subnK. +Qed. + +Lemma powX_eq_mod i j : i = j %[mod #|qT|.-1] -> 'qX ^+ i = 'qX ^+ j :> qT. +Proof. +set n := _.-1 => iEj. +rewrite [i](divn_eq i n) [j](divn_eq j n) !exprD ![(_ * n)%N]mulnC. +by rewrite !exprM !qX_order_card !expr1n !mul1r iEj. +Qed. + +Lemma qX_expK i : i < #|qT|.-1 -> qlogp ('qX ^+ i) = i. +Proof. +move=> iLF; apply: qX_exp_inj => //; first by apply: qlogp_lt. +by rewrite qlogp_qX // expf_eq0 (negPf qX_neq0) andbF. +Qed. + +Lemma qlogpD (q1 q2 : qT) : + q1 != 0 -> q2 != 0 ->qlogp (q1 * q2) = ((qlogp q1 + qlogp q2) %% #|qT|.-1)%N. +Proof. +move=> q1_neq0 q2_neq0. +apply: qX_exp_inj; [apply: qlogp_lt => // | rewrite ltn_mod // |]. +rewrite -[RHS]mul1r -(expr1n _ ((qlogp q1 + qlogp q2) %/ #|qT|.-1)). +rewrite -qX_order_card -exprM mulnC -exprD -divn_eq exprD !qlogp_qX //. +by rewrite mulf_eq0 negb_or q1_neq0. +Qed. + +End PrimitivePoly. + +Section Plogp. + +Variable F : finFieldType. + +Definition plogp (p q : {poly F}) := + if boolP (primitive_poly p) is AltTrue Hh then + qlogp ((in_qpoly p q) : {poly %/ p with primitive_mi Hh}) + else 0%N. + +Lemma plogp_lt (p q : {poly F}) : 2 < size p -> plogp p q < #|{poly %/ p}|.-1. +Proof. +move=> /ltnW size_gt1. +rewrite /plogp. +case (boolP (primitive_poly p)) => // Hh; first by apply: qlogp_lt. +by rewrite ltn_predRL (card_finRing_gt1 [finRingType of {poly %/ p}]). +Qed. + +Lemma plogp_X (p q : {poly F}) : + 2 < size p -> primitive_poly p -> ~~ (p %| q) -> p %| q - 'X ^+ plogp p q. +Proof. +move=> sp_gt2 Hh pNDq. +rewrite /plogp. +case (boolP (primitive_poly p)) => // Hh'; last by case/negP: Hh'. +have pM : p \is monic by case/and4P: Hh'. +have pMi : monic_irreducible_poly p by apply: primitive_mi. +set q' : {poly %/ p with primitive_mi Hh'} := in_qpoly p q. +apply/modp_eq0P; rewrite modpD modpN; apply/eqP; rewrite subr_eq0; apply/eqP. +rewrite !Pdiv.IdomainMonic.modpE //=. +suff /val_eqP/eqP/= : 'qX ^+ qlogp q' = q'. + rewrite /= [X in rmodp _ X]mk_monicE // => <-. + by rewrite poly_of_qpolyX /= mk_monicE // [rmodp 'X p]rmodp_small ?size_polyX. +apply: qlogp_qX => //. +apply/eqP=> /val_eqP/eqP. +rewrite /= mk_monicE // => /rmodp_eq0P; rewrite -dvdpE => pDq. +by case/negP: pNDq. +Qed. + +Lemma plogp0 (p : {poly F}) : 2 < size p -> plogp p 0 = 0%N. +Proof. +move=> sp_gt2; rewrite /plogp; case (boolP (primitive_poly p)) => // i. +by rewrite in_qpoly0 qlogp0. +Qed. + +Lemma plogp1 (p : {poly F}) : 2 < size p -> plogp p 1 = 0%N. +Proof. +move=> sp_gt2; rewrite /plogp; case (boolP (primitive_poly p)) => // i. +suff->: in_qpoly p 1 = 1 by apply: qlogp1. +apply/val_eqP/eqP; apply: in_qpoly_small. +rewrite mk_monicE ?size_poly1 ?(leq_trans _ sp_gt2) //. +by apply: primitive_mi. +Qed. + +Lemma plogp_div_eq0 (p q : {poly F}) : + 2 < size p -> (p %| q) -> plogp p q = 0%N. +Proof. +move=> sp_gt2; rewrite /plogp; case (boolP (primitive_poly p)) => // i pDq. +suff-> : in_qpoly p q = 0 by apply: qlogp0. +by apply/eqP; rewrite primitive_poly_in_qpoly_eq0. +Qed. + +Lemma plogpD (p q1 q2 : {poly F}) : + 2 < size p -> primitive_poly p -> ~~ (p %| q1) -> ~~ (p %| q2) -> + plogp p (q1 * q2) = ((plogp p q1 + plogp p q2) %% #|{poly %/ p}|.-1)%N. +Proof. +move=> sp_gt2 Pp pNDq1 pNDq2. +rewrite /plogp; case (boolP (primitive_poly p)) => [|/negP//] i /=. +have pmi := primitive_mi i. +by rewrite rmorphM qlogpD //= primitive_poly_in_qpoly_eq0. +Qed. + +End Plogp. diff --git a/mathcomp/fingroup/Make b/mathcomp/fingroup/Make index 24ba6dabf6..c44b542300 100644 --- a/mathcomp/fingroup/Make +++ b/mathcomp/fingroup/Make @@ -18,3 +18,6 @@ quotient.v -arg -w -arg +undeclared-scope -arg -w -arg +deprecated-hint-without-locality -arg -w -arg +deprecated-hint-rewrite-without-locality +-arg -w -arg -opaque-let +-arg -w -arg -argument-scope-delimiter +-arg -w -arg -overwriting-delimiting-key diff --git a/mathcomp/fingroup/action.v b/mathcomp/fingroup/action.v index be786f4ae7..574cecb224 100644 --- a/mathcomp/fingroup/action.v +++ b/mathcomp/fingroup/action.v @@ -221,7 +221,7 @@ Arguments acts_on {aT D%g rT} A%g S%g to%act. Arguments atrans {aT D%g rT} A%g S%g to%act. Arguments faithful {aT D%g rT} A%g S%g to%act. -Notation "to ^*" := (setact to) (at level 2, format "to ^*") : fun_scope. +Notation "to ^*" := (setact to) (at level 2, format "to ^*") : function_scope. Prenex Implicits orbit amove. diff --git a/mathcomp/fingroup/presentation.v b/mathcomp/fingroup/presentation.v index 2c467abf7e..78e55eee91 100644 --- a/mathcomp/fingroup/presentation.v +++ b/mathcomp/fingroup/presentation.v @@ -6,11 +6,11 @@ From mathcomp Require Import fintype finset fingroup morphism. (******************************************************************************) (* Support for generator-and-relation presentations of groups. We provide the *) (* syntax: *) -(* G \homg Grp (x_1 : ... x_n : (s_1 = t_1, ..., s_m = t_m)) *) +(* G \homg Grp (x_1 : ... x_n : s_1 = t_1, ..., s_m = t_m) *) (* <=> G is generated by elements x_1, ..., x_m satisfying the relations *) (* s_1 = t_1, ..., s_m = t_m, i.e., G is a homomorphic image of the *) (* group generated by the x_i, subject to the relations s_j = t_j. *) -(* G \isog Grp (x_1 : ... x_n : (s_1 = t_1, ..., s_m = t_m)) *) +(* G \isog Grp (x_1 : ... x_n : s_1 = t_1, ..., s_m = t_m) *) (* <=> G is isomorphic to the largest finite factor of the group generated *) (* by the x_i, subject to the relations s_j = t_j. In particular, *) (* if the abstract group defined by the presentation is finite, *) @@ -34,7 +34,7 @@ From mathcomp Require Import fintype finset fingroup morphism. (* - G \isog Grp (...) : Prop expands to the statement *) (* forall rT (H : {group rT}), (H \homg G) = (H \homg Grp (...)) *) (* (with rT : finGroupType). *) -(* - G \homg Grp (x_1 : ... x_n : (s_1 = t_1, ..., s_m = t_m)) : bool, with *) +(* - G \homg Grp (x_1 : ... x_n : s_1 = t_1, ..., s_m = t_m) : bool, with *) (* G : {set gT}, is convertible to the boolean expression *) (* [exists t : gT * ... gT, let: (x_1, ..., x_n) := t in *) (* (<[x_1]> <*> ... <*> <[x_n]>, (s_1, ... (s_m-1, s_m) ...)) *) @@ -55,9 +55,6 @@ Set Implicit Arguments. Unset Strict Implicit. Unset Printing Implicit Defensive. -Declare Scope group_presentation. -Declare Scope nt_group_presentation. - Import GroupScope. Module Presentation. @@ -135,39 +132,33 @@ Coercion bool_of_rel : rel_type >-> bool. Coercion Eq1 : term >-> formula. Coercion Formula : formula >-> type. -(* Declare (implicitly) the argument scope tags. *) -Notation "1" := Idx : group_presentation. -Arguments Inv _%group_presentation. -Arguments Exp _%group_presentation _%N. -Arguments Mul _%group_presentation _%group_presentation. -Arguments Conj _%group_presentation _%group_presentation. -Arguments Comm _%group_presentation _%group_presentation. -Arguments Eq1 _%group_presentation. -Arguments Eq2 _%group_presentation _%group_presentation. -Arguments Eq3 _%group_presentation _%group_presentation _%group_presentation. -Arguments And _%group_presentation _%group_presentation. -Arguments Formula _%group_presentation. -Arguments Cast _%group_presentation. - -Infix "*" := Mul : group_presentation. -Infix "^+" := Exp : group_presentation. -Infix "^" := Conj : group_presentation. -Notation "x ^-1" := (Inv x) : group_presentation. -Notation "x ^- n" := (Inv (x ^+ n)) : group_presentation. -Notation "[ ~ x1 , x2 , .. , xn ]" := - (Comm .. (Comm x1 x2) .. xn) : group_presentation. -Notation "x = y" := (Eq2 x y) : group_presentation. -Notation "x = y = z" := (Eq3 x y z) : group_presentation. -Notation "( r1 , r2 , .. , rn )" := - (And .. (And r1 r2) .. rn) : group_presentation. - -(* Declare (implicitly) the argument scope tags. *) -Notation "x : p" := (fun x => Cast p) : nt_group_presentation. -Arguments Generator _%nt_group_presentation. -Arguments hom _ _%group_scope _%nt_group_presentation. -Arguments iso _ _%group_scope _%nt_group_presentation. - -Notation "x : p" := (Generator (x : p)) : group_presentation. +Declare Custom Entry group_presentation. + +Notation "x * y" := (Mul x y) + (in custom group_presentation at level 40, left associativity). +Notation "x ^+ n" := (Exp x n) + (in custom group_presentation at level 29, n constr at level 28). +Notation "x ^ y" := (Conj x y) + (in custom group_presentation at level 30, right associativity). +Notation "x ^-1" := (Inv x) (in custom group_presentation at level 3). +Notation "x ^- n" := (Inv (Exp x n)) + (in custom group_presentation at level 29, n constr at level 28). +Notation "[ ~ x1 , x2 , .. , xn ]" := (Comm .. (Comm x1 x2) .. xn) + (in custom group_presentation, x1, x2, xn at level 100). +Notation "x = y" := (Eq2 x y) (in custom group_presentation at level 70). +Notation "x = y = z" := (Eq3 x y z) (in custom group_presentation at level 70, + y at next level). +Notation "r1 , r2 , .. , rn" := (And .. (And r1 r2) .. rn) + (in custom group_presentation at level 200). +Notation "( p )" := p (in custom group_presentation, p at level 200). +Notation "1" := Idx (in custom group_presentation). +Notation "x" := x (in custom group_presentation at level 0, x ident). + +Notation "x : p" := (Generator (fun x => Cast p)) + (in custom group_presentation, x ident, p custom group_presentation at level 200). + +Arguments hom _ _%group_scope. +Arguments iso _ _%group_scope. Notation "H \homg 'Grp' p" := (hom H p) (at level 70, p at level 0, format "H \homg 'Grp' p") : group_scope. @@ -175,12 +166,12 @@ Notation "H \homg 'Grp' p" := (hom H p) Notation "H \isog 'Grp' p" := (iso H p) (at level 70, p at level 0, format "H \isog 'Grp' p") : group_scope. -Notation "H \homg 'Grp' ( x : p )" := (hom H (x : p)) - (at level 70, x at level 0, - format "'[hv' H '/ ' \homg 'Grp' ( x : p ) ']'") : group_scope. +Notation "H \homg 'Grp' ( x : p )" := (hom H (fun x => Cast p)) + (at level 70, x ident, p custom group_presentation at level 200, + format "'[hv' H '/ ' \homg 'Grp' ( x : p ) ']'") : group_scope. -Notation "H \isog 'Grp' ( x : p )" := (iso H (x : p)) - (at level 70, x at level 0, +Notation "H \isog 'Grp' ( x : p )" := (iso H (fun x => Cast p)) + (at level 70, x ident, p custom group_presentation at level 200, format "'[hv' H '/ ' \isog 'Grp' ( x : p ) ']'") : group_scope. Section PresentationTheory. diff --git a/mathcomp/solvable/Make b/mathcomp/solvable/Make index 0284dd44aa..a42927f0e3 100644 --- a/mathcomp/solvable/Make +++ b/mathcomp/solvable/Make @@ -29,3 +29,6 @@ sylow.v -arg -w -arg +undeclared-scope -arg -w -arg +deprecated-hint-without-locality -arg -w -arg +deprecated-hint-rewrite-without-locality +-arg -w -arg -opaque-let +-arg -w -arg -argument-scope-delimiter +-arg -w -arg -overwriting-delimiting-key diff --git a/mathcomp/solvable/cyclic.v b/mathcomp/solvable/cyclic.v index 87ed129667..3bc21a5ea1 100644 --- a/mathcomp/solvable/cyclic.v +++ b/mathcomp/solvable/cyclic.v @@ -800,6 +800,9 @@ apply: field_mul_group_cyclic FinRing.uval _ _ => // u _. by split=> /eqP ?; apply/eqP. Qed. +Lemma units_Zp_cyclic p : prime p -> cyclic (units_Zp p). +Proof. by move/pdiv_id <-; exact: field_unit_group_cyclic. Qed. + Section PrimitiveRoots. Open Scope ring_scope. @@ -848,7 +851,8 @@ Variable gT : finGroupType. Lemma Aut_prime_cycle_cyclic (a : gT) : prime #[a] -> cyclic (Aut <[a]>). Proof. -move=> pr_a; have inj_um := injm_Zp_unitm a; have eq_a := Fp_Zcast pr_a. +move=> pr_a; have inj_um := injm_Zp_unitm a. +have /eq_S/eq_S eq_a := Fp_Zcast pr_a. pose fm := cast_ord (esym eq_a) \o val \o invm inj_um. apply: (@field_mul_group_cyclic _ _ _ fm) => [f g Af Ag | f Af] /=. by apply: val_inj; rewrite /= morphM ?im_Zp_unitm //= eq_a. diff --git a/mathcomp/solvable/extraspecial.v b/mathcomp/solvable/extraspecial.v index 110ffc0e45..d2dbea0b8b 100644 --- a/mathcomp/solvable/extraspecial.v +++ b/mathcomp/solvable/extraspecial.v @@ -120,7 +120,7 @@ by rewrite -mulnA Zp_cast. Qed. Lemma Grp_pX1p2 : - p^{1+2} \isog Grp (x : y : (x ^+ p, y ^+ p, [~ x, y, x], [~ x, y, y])). + p^{1+2} \isog Grp (x : y : x ^+ p, y ^+ p, [~ x, y, x], [~ x, y, y]). Proof. rewrite [@gtype _]unlock; apply: intro_isoGrp => [|rT H]. apply/existsP; pose x := sdpair1 actp (0, 1)%R; pose y := sdpair2 actp 1%R. diff --git a/mathcomp/solvable/extremal.v b/mathcomp/solvable/extremal.v index bff5eb2ae0..dd950a7a76 100644 --- a/mathcomp/solvable/extremal.v +++ b/mathcomp/solvable/extremal.v @@ -104,7 +104,7 @@ by rewrite mulnC -!orderE !order_Zp1 !Zp_cast. Qed. Lemma Grp : (exists s, [/\ s \in Aut B, #[s] %| p & s b = b ^+ e]) -> - [set: gtype] \isog Grp (x : y : (x ^+ q, y ^+ p, x ^ y = x ^+ e)). + [set: gtype] \isog Grp (x : y : x ^+ q, y ^+ p, x ^ y = x ^+ e). Proof. rewrite [gtype]unlock => [[s [AutBs dvd_s_p sb]]]. have memB: _ \in B by move=> c; rewrite -Zp_cycle inE. @@ -432,7 +432,7 @@ Lemma card_modular_group : #|'Mod_(p ^ n)| = (p ^ n)%N. Proof. by rewrite Extremal.card def_p ?def_q // -expnS def_n. Qed. Lemma Grp_modular_group : - 'Mod_(p ^ n) \isog Grp (x : y : (x ^+ q, y ^+ p, x ^ y = x ^+ r.+1)). + 'Mod_(p ^ n) \isog Grp (x : y : x ^+ q, y ^+ p, x ^ y = x ^+ r.+1). Proof. rewrite /modular_gtype def_p def_q def_r; apply: Extremal.Grp => //. set B := <[_]>; have Bb: Zp1 \in B by apply: cycle_id. @@ -618,9 +618,9 @@ Local Notation ED := [set: gsort (Extremal.gtype q p q.-1)]. Lemma card_ext_dihedral : #|ED| = (p./2 * m)%N. Proof. by rewrite Extremal.card // /m -mul2n -divn2 mulnA divnK. Qed. -Lemma Grp_ext_dihedral : ED \isog Grp (x : y : (x ^+ q, y ^+ p, x ^ y = x^-1)). +Lemma Grp_ext_dihedral : ED \isog Grp (x : y : x ^+ q, y ^+ p, x ^ y = x^-1). Proof. -suffices isoED: ED \isog Grp (x : y : (x ^+ q, y ^+ p, x ^ y = x ^+ q.-1)). +suffices isoED: ED \isog Grp (x : y : x ^+ q, y ^+ p, x ^ y = x ^+ q.-1). move=> gT G; rewrite isoED. apply: eq_existsb => [[x y]] /=; rewrite !xpair_eqE. congr (_ && _); apply: andb_id2l; move/eqP=> xq1; congr (_ && (_ == _)). @@ -639,10 +639,10 @@ End Dihedral_extension. Lemma card_dihedral : #|'D_m| = m. Proof. by rewrite /('D_m)%type def_q card_ext_dihedral ?mul1n. Qed. -Lemma Grp_dihedral : 'D_m \isog Grp (x : y : (x ^+ q, y ^+ 2, x ^ y = x^-1)). +Lemma Grp_dihedral : 'D_m \isog Grp (x : y : x ^+ q, y ^+ 2, x ^ y = x^-1). Proof. by rewrite /('D_m)%type def_q; apply: Grp_ext_dihedral. Qed. -Lemma Grp'_dihedral : 'D_m \isog Grp (x : y : (x ^+ 2, y ^+ 2, (x * y) ^+ q)). +Lemma Grp'_dihedral : 'D_m \isog Grp (x : y : x ^+ 2, y ^+ 2, (x * y) ^+ q). Proof. move=> gT G; rewrite Grp_dihedral; apply/existsP/existsP=> [] [[x y]] /=. case/eqP=> <- xq1 y2 xy; exists (x * y, y); rewrite !xpair_eqE /= eqEsubset. @@ -682,7 +682,7 @@ by rewrite eqEcard cycle_subG /= cycle2g // !inE -order_eq1 ox; case/andP. Qed. Lemma Grp_2dihedral n : n > 1 -> - 'D_(2 ^ n) \isog Grp (x : y : (x ^+ (2 ^ n.-1), y ^+ 2, x ^ y = x^-1)). + 'D_(2 ^ n) \isog Grp (x : y : x ^+ (2 ^ n.-1), y ^+ 2, x ^ y = x^-1). Proof. move=> n_gt1; rewrite -(ltn_predK n_gt1) expnS mul2n /=. by apply: Grp_dihedral; rewrite (ltn_exp2l 0) // -(subnKC n_gt1). @@ -703,7 +703,7 @@ Qed. Lemma Grp_semidihedral n : n > 3 -> 'SD_(2 ^ n) \isog - Grp (x : y : (x ^+ (2 ^ n.-1), y ^+ 2, x ^ y = x ^+ (2 ^ n.-2).-1)). + Grp (x : y : x ^+ (2 ^ n.-1), y ^+ 2, x ^ y = x ^+ (2 ^ n.-2).-1). Proof. move=> n_gt3. rewrite /('SD__)%type -(subnKC (ltnW (ltnW n_gt3))) pdiv_pfactor //. @@ -733,7 +733,7 @@ Hypothesis n_gt2 : n > 2. Let m := (2 ^ n)%N. Let q := (2 ^ n.-1)%N. Let r := (2 ^ n.-2)%N. -Let GrpQ := 'Q_m \isog Grp (x : y : (x ^+ q, y ^+ 2 = x ^+ r, x ^ y = x^-1)). +Let GrpQ := 'Q_m \isog Grp (x : y : x ^+ q, y ^+ 2 = x ^+ r, x ^ y = x^-1). Let defQ : #|'Q_m| = m /\ GrpQ. Proof. have q_gt1 : q > 1 by rewrite (ltn_exp2l 0) // -(subnKC n_gt2). @@ -743,7 +743,7 @@ have def_q : m %/ pdiv m = q have r_gt1 : r > 1 by rewrite (ltn_exp2l 0) // -(subnKC n_gt2). have def2r : (2 * r)%N = q by rewrite -expnS /q -(subnKC n_gt2). rewrite /GrpQ [@quaternion_gtype _]unlock /quaternion_kernel {}def_q. -set B := [set: _]; have: B \homg Grp (u : v : (u ^+ q, v ^+ 4, u ^ v = u^-1)). +set B := [set: _]; have: B \homg Grp (u : v : u ^+ q, v ^+ 4, u ^ v = u^-1). by rewrite -Grp_ext_dihedral ?homg_refl. have: #|B| = (q * 4)%N by rewrite card_ext_dihedral // mulnC -muln2 -mulnA. rewrite {}/B; move: (Extremal.gtype q 4 _) => gT. diff --git a/mathcomp/ssreflect/Make b/mathcomp/ssreflect/Make index a92a2eebce..d4bdcaa037 100644 --- a/mathcomp/ssreflect/Make +++ b/mathcomp/ssreflect/Make @@ -31,6 +31,8 @@ order.v -arg -w -arg +duplicate-clear -arg -w -arg -ambiguous-paths -arg -w -arg +undeclared-scope --arg -w -arg -non-reversible-notation -arg -w -arg +deprecated-hint-without-locality -arg -w -arg +deprecated-hint-rewrite-without-locality +-arg -w -arg -opaque-let +-arg -w -arg -argument-scope-delimiter +-arg -w -arg -overwriting-delimiting-key diff --git a/mathcomp/ssreflect/bigop.v b/mathcomp/ssreflect/bigop.v index 5ffcfed8cf..1370a4edc5 100644 --- a/mathcomp/ssreflect/bigop.v +++ b/mathcomp/ssreflect/bigop.v @@ -932,6 +932,10 @@ Lemma big_map_id J (h : J -> R) r (P : pred R) : = \big[op/idx]_(j <- r | P (h j)) h j. Proof. exact: big_map. Qed. +Lemma big_condT (J : finType) (A : {pred J}) F : + \big[op/idx]_(i in A | true) F i = \big[op/idx]_(i in A) F i. +Proof. by apply: eq_bigl => i; exact: andbT. Qed. + (* The following lemmas can be used to localise extensionality to a specific *) (* index sequence. This is done by ssreflect rewriting, before applying *) (* congruence or induction lemmas. *) @@ -2578,6 +2582,62 @@ Lemma sum_nat_eq0 (I : finType) (P : pred I) (E : I -> nat) : (\sum_(i | P i) E i == 0)%N = [forall (i | P i), E i == 0%N]. Proof. by rewrite eq_sym -(@leqif_sum I P _ (fun _ => 0%N) E) ?big1_eq. Qed. +Lemma sum_nat_seq_eq0 I r (P : pred I) F : + (\sum_(i <- r | P i) F i == 0)%N = all (fun i => P i ==> (F i == 0%N)) r. +Proof. by rewrite (big_morph _ (id1:=true) addn_eq0)// big_all_cond. Qed. + +Lemma sum_nat_seq_neq0 I r (P : pred I) F : + (\sum_(i <- r | P i) F i != 0)%N = has (fun i => P i && (F i != 0)%N) r. +Proof. +by rewrite sum_nat_seq_eq0// -has_predC; apply: eq_has => x /=; case Px: (P x). +Qed. + +Lemma sum_nat_eq1 (I : finType) (P : pred I) (F : I -> nat) : + reflect + (exists i : I, [/\ P i, F i = 1 & forall j, j != i -> P j -> F j = 0]%N) + (\sum_(i | P i) F i == 1)%N. +Proof. +apply/(iffP idP) => [sumF_eq1 | [i [Pi Fi1 zFj]]]; last first. + rewrite (bigD1 i)//= Fi1 addn_eq1//= orbF sum_nat_eq0. + by apply/forall_inP => j /andP[Pj ji]; apply/eqP/zFj. +have /forall_inPn [i Pi FiN0]: ~~ [forall i in P, F i == 0]. + by apply: contraTN sumF_eq1 => /'forall_in_eqP F0; rewrite big1. +move: sumF_eq1; rewrite (bigD1 i)//= addn_eq1 (negPf FiN0)/= orbF. +move=> /andP[/eqP Fi1]; rewrite sum_nat_eq0 => /'forall_in_eqP FNi0. +by exists i; split; rewrite // => j /[swap] Nij /(conj Nij)/andP/FNi0. +Qed. + +Lemma sum_nat_seq_eq1 (I : eqType) r (P : pred I) (F : I -> nat) : + (\sum_(i <- r | P i) F i = 1)%N -> + exists i, [/\ i \in r, P i, F i = 1 + & forall j, j != i -> j \in r -> P j -> F j = 0]%N. +Proof. +rewrite big_tnth/= => /eqP/sum_nat_eq1[/= i [Pi Fi FNi]]. +exists (tnth (in_tuple r) i); split; rewrite //= ?mem_tnth// => j. +move=> /[swap] /(tnthP (in_tuple r))[{} j -> Nij /FNi->//]. +by apply: contra_neq Nij => ->. +Qed. + +Lemma prod_nat_seq_eq0 I r (P : pred I) F : + (\prod_(i <- r | P i) F i == 0)%N = has (fun i => P i && (F i == 0%N)) r. +Proof. by rewrite (big_morph _ (id1 := false) muln_eq0)// big_has_cond. Qed. + +Lemma prod_nat_seq_neq0 I r (P : pred I) F : + (\prod_(i <- r | P i) F i != 0)%N = all (fun i => P i ==> (F i != 0%N)) r. +Proof. +by rewrite prod_nat_seq_eq0 -all_predC; apply: eq_all => i /=; case: (P i). +Qed. + +Lemma prod_nat_seq_eq1 I r (P : pred I) F : + (\prod_(i <- r | P i) F i == 1)%N = all (fun i => P i ==> (F i == 1%N)) r. +Proof. by rewrite (big_morph _ (id1:=true) muln_eq1)// big_all_cond. Qed. + +Lemma prod_nat_seq_neq1 I r (P : pred I) F : + (\prod_(i <- r | P i) F i != 1)%N = has (fun i => P i && (F i != 1%N)) r. +Proof. +by rewrite prod_nat_seq_eq1 -has_predC; apply: eq_has => i /=; case: (P i). +Qed. + Lemma leq_prod I r (P : pred I) (E1 E2 : I -> nat) : (forall i, P i -> E1 i <= E2 i) -> \prod_(i <- r | P i) E1 i <= \prod_(i <- r | P i) E2 i. diff --git a/mathcomp/ssreflect/eqtype.v b/mathcomp/ssreflect/eqtype.v index 82896c8df2..9512a5f53e 100644 --- a/mathcomp/ssreflect/eqtype.v +++ b/mathcomp/ssreflect/eqtype.v @@ -413,9 +413,9 @@ Arguments predD1P {T x y b}. Prenex Implicits pred1 pred2 pred3 pred4 predU1 predC1 predD1. Notation "[ 'predU1' x & A ]" := (predU1 x [in A]) - (at level 0, format "[ 'predU1' x & A ]") : fun_scope. + (at level 0, format "[ 'predU1' x & A ]") : function_scope. Notation "[ 'predD1' A & x ]" := (predD1 [in A] x) - (at level 0, format "[ 'predD1' A & x ]") : fun_scope. + (at level 0, format "[ 'predD1' A & x ]") : function_scope. (* Lemmas for reflected equality and functions. *) @@ -509,21 +509,21 @@ Arguments app_fdelta {aT rT%type} df%FUN_DELTA f z. Notation "[ 'fun' z : T => F 'with' d1 , .. , dn ]" := (SimplFunDelta (fun z : T => app_fdelta d1%FUN_DELTA .. (app_fdelta dn%FUN_DELTA (fun _ => F)) ..)) - (at level 0, z name, only parsing) : fun_scope. + (at level 0, z name, only parsing) : function_scope. Notation "[ 'fun' z => F 'with' d1 , .. , dn ]" := (SimplFunDelta (fun z => app_fdelta d1%FUN_DELTA .. (app_fdelta dn%FUN_DELTA (fun _ => F)) ..)) (at level 0, z name, format "'[hv' [ '[' 'fun' z => '/ ' F ']' '/' 'with' '[' d1 , '/' .. , '/' dn ']' ] ']'" - ) : fun_scope. + ) : function_scope. Notation "[ 'eta' f 'with' d1 , .. , dn ]" := (SimplFunDelta (fun _ => app_fdelta d1%FUN_DELTA .. (app_fdelta dn%FUN_DELTA f) ..)) (at level 0, format "'[hv' [ '[' 'eta' '/ ' f ']' '/' 'with' '[' d1 , '/' .. , '/' dn ']' ] ']'" - ) : fun_scope. + ) : function_scope. (* Various EqType constructions. *) @@ -824,7 +824,7 @@ Definition predX T1 T2 (p1 : pred T1) (p2 : pred T2) := [pred z | p1 z.1 & p2 z.2]. Notation "[ 'predX' A1 & A2 ]" := (predX [in A1] [in A2]) - (at level 0, format "[ 'predX' A1 & A2 ]") : fun_scope. + (at level 0, format "[ 'predX' A1 & A2 ]") : function_scope. Section OptionEqType. diff --git a/mathcomp/ssreflect/finfun.v b/mathcomp/ssreflect/finfun.v index fb1665bd16..b7c206fa56 100644 --- a/mathcomp/ssreflect/finfun.v +++ b/mathcomp/ssreflect/finfun.v @@ -124,13 +124,13 @@ Canonical finfun_unlock := Unlockable FinfunDef.finfunE. Arguments finfun {aT rT} g. Notation "[ 'ffun' x : aT => E ]" := (finfun (fun x : aT => E)) - (at level 0, x name) : fun_scope. + (at level 0, x name) : function_scope. Notation "[ 'ffun' x => E ]" := (@finfun _ (fun=> _) (fun x => E)) - (at level 0, x name, format "[ 'ffun' x => E ]") : fun_scope. + (at level 0, x name, format "[ 'ffun' x => E ]") : function_scope. Notation "[ 'ffun' => E ]" := [ffun _ => E] - (at level 0, format "[ 'ffun' => E ]") : fun_scope. + (at level 0, format "[ 'ffun' => E ]") : function_scope. (* Example outcommented. (* Examples of using finite functions as containers in recursive inductive *) @@ -362,7 +362,7 @@ Lemma supportE x y f : (x \in support_for y f) = (f x != y). Proof. by []. Qed. End Support. Notation "y .-support" := (support_for y) - (at level 2, format "y .-support") : fun_scope. + (at level 2, format "y .-support") : function_scope. Section EqTheory. diff --git a/mathcomp/ssreflect/finset.v b/mathcomp/ssreflect/finset.v index 0c71b88adb..6c985f8bb5 100644 --- a/mathcomp/ssreflect/finset.v +++ b/mathcomp/ssreflect/finset.v @@ -1404,6 +1404,24 @@ Arguments imsetP {aT rT f D y}. Arguments imset2P {aT aT2 rT f2 D1 D2 y}. Arguments imset_disjoint {aT rT f A B}. +Section BigOpsAnyOp. + +Variables (R : Type) (x : R) (op : R -> R -> R). +Variables I : finType. +Implicit Type F : I -> R. + +Lemma big_set0 F : \big[op/x]_(i in set0) F i = x. +Proof. by apply: big_pred0 => i; rewrite inE. Qed. + +Lemma big_set1E j F : \big[op/x]_(i in [set j]) F i = op (F j) x. +Proof. by rewrite -big_pred1_eq_id; apply: eq_bigl => i; apply: in_set1. Qed. + +Lemma big_set (A : pred I) F : + \big[op/x]_(i in [set i | A i]) (F i) = \big[op/x]_(i in A) (F i). +Proof. by apply: eq_bigl => i; rewrite inE. Qed. + +End BigOpsAnyOp. + Section BigOpsSemiGroup. Variables (R : Type) (op : R -> R -> R). @@ -1421,6 +1439,18 @@ Proof. by move=> /subsetP AP; apply: sub_le_big => // i; have /[!inE] := AP i. Qed. +Lemma big_imset_idem [I J : finType] (h : I -> J) (A : pred I) F : + idempotent op -> + \big[op/x]_(j in h @: A) F j = \big[op/x]_(i in A) F (h i). +Proof. +rewrite -!big_image_AC// => op_idem. +rewrite -big_undup_AC// -[RHS]big_undup_AC//. +apply/perm_big_AC => //; apply/perm_undup => j; apply/imageP. +have [mem_j | /imageP mem_j] := boolP (j \in [seq h j | j in A]). +- by exists j => //; apply/imsetP; apply: imageP mem_j. +- by case=> k /imsetP [i j_in_A ->] eq_i; apply: mem_j; exists i. +Qed. + End BigOpsSemiGroup. Section BigOps. @@ -1433,16 +1463,9 @@ Implicit Type h : I -> J. Implicit Type P : pred I. Implicit Type F : I -> R. -Lemma big_set0 F : \big[op/idx]_(i in set0) F i = idx. -Proof. by apply: big_pred0 => i; rewrite inE. Qed. - Lemma big_set1 a F : \big[op/idx]_(i in [set a]) F i = F a. Proof. by apply: big_pred1 => i; rewrite !inE. Qed. -Lemma big_set (A : pred I) F : - \big[op/idx]_(i in [set i | A i]) (F i) = \big[op/idx]_(i in A) (F i). -Proof. by apply: eq_bigl => i; rewrite inE. Qed. - Lemma big_setID A B F : \big[aop/idx]_(i in A) F i = aop (\big[aop/idx]_(i in A :&: B) F i) diff --git a/mathcomp/ssreflect/fintype.v b/mathcomp/ssreflect/fintype.v index 3688a1f0c0..c3886da46b 100644 --- a/mathcomp/ssreflect/fintype.v +++ b/mathcomp/ssreflect/fintype.v @@ -1,7 +1,7 @@ (* (c) Copyright 2006-2016 Microsoft Corporation and Inria. *) (* Distributed under the terms of CeCILL-B. *) From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq choice. -From mathcomp Require Import path. +From mathcomp Require Import path div. (******************************************************************************) (* The Finite interface describes Types with finitely many elements, *) @@ -58,6 +58,10 @@ From mathcomp Require Import path. (* cast_ord eq_n_m i == the element j : 'I_m with the same value as i : 'I_n *) (* given eq_n_m : n = m (indeed, i : nat and j : nat *) (* are convertible). *) +(* ordS n i == the successor of i : 'I_n along the cyclic structure *) +(* of 'I_n, reduces in nat to i.+1 %% n. *) +(* ord_pred n i == the predecessor of i : 'I_n along the cyclic *) +(* structure of 'I_n, reduces in nat to (i + n).-1 %% n.*) (* widen_ord le_n_m i == a j : 'I_m with the same value as i : 'I_n, given *) (* le_n_m : n <= m. *) (* rev_ord i == the complement to n.-1 of i : 'I_n, such that *) @@ -465,7 +469,7 @@ Section OpsTheory. Variable T : finType. -Implicit Types (A B C D: {pred T}) (P Q : pred T) (x y : T) (s : seq T). +Implicit Types (A B C D : {pred T}) (P Q : pred T) (x y : T) (s : seq T). Lemma enumP : Finite.axiom (Finite.enum T). Proof. by rewrite unlock; case T => ? [? []]. Qed. @@ -740,7 +744,36 @@ Qed. Lemma subset_all s A : (s \subset A) = all [in A] s. Proof. exact: (sameP (subsetP _ _) allP). Qed. -Lemma properE A B : A \proper B = (A \subset B) && ~~(B \subset A). +Lemma subset_cons s x : s \subset x :: s. +Proof. by apply/subsetP => y /[!inE] ->; rewrite orbT. Qed. + +Lemma subset_cons2 s1 s2 x : s1 \subset s2 -> x :: s1 \subset x :: s2. +Proof. +by move=> ?; apply/subsetP => y /[!inE]; case: eqP => // _; apply: subsetP. +Qed. + +Lemma subset_catl s s' : s \subset s ++ s'. +Proof. by apply/subsetP=> x xins; rewrite mem_cat xins. Qed. + +Lemma subset_catr s s' : s \subset s' ++ s. +Proof. by apply/subsetP => x xins; rewrite mem_cat xins orbT. Qed. + +Lemma subset_cat2 s1 s2 s3 : s1 \subset s2 -> s3 ++ s1 \subset s3 ++ s2. +Proof. +move=> /subsetP s12; apply/subsetP => x. +by rewrite !mem_cat => /orP[->|/s12->]; rewrite ?orbT. +Qed. + +Lemma filter_subset p s : [seq a <- s | p a] \subset s. +Proof. by apply/subsetP=> x; rewrite mem_filter => /andP[]. Qed. + +Lemma subset_filter p s1 s2 : + s1 \subset s2 -> [seq a <- s1 | p a] \subset [seq a <- s2 | p a]. +Proof. +by move/subsetP=> s12; apply/subsetP=> x; rewrite !mem_filter=> /andP[-> /s12]. +Qed. + +Lemma properE A B : A \proper B = (A \subset B) && ~~ (B \subset A). Proof. by []. Qed. Lemma properP A B : @@ -916,6 +949,13 @@ Proof. by rewrite !disjoint_has has_cat negb_or. Qed. End OpsTheory. +Lemma map_subset {T T' : finType} (s1 s2 : seq T) (f : T -> T') : + s1 \subset s2 -> [seq f x | x <- s1 ] \subset [seq f x | x <- s2]. +Proof. +move=> s1s2; apply/subsetP => _ /mapP[y] /[swap] -> ys1. +by apply/mapP; exists y => //; move/subsetP : s1s2; exact. +Qed. + #[global] Hint Resolve subxx_hint : core. Arguments pred0P {T P}. @@ -1885,6 +1925,40 @@ Proof. by move=> i; apply: val_inj. Qed. Lemma cast_ord_inj n1 n2 eq_n : injective (@cast_ord n1 n2 eq_n). Proof. exact: can_inj (cast_ordK eq_n). Qed. +Fact ordS_subproof n (i : 'I_n) : i.+1 %% n < n. +Proof. by case: n i => [|n] [m m_lt]//=; rewrite ltn_pmod. Qed. +Definition ordS n (i : 'I_n) := Ordinal (ordS_subproof i). + +Fact ord_pred_subproof n (i : 'I_n) : (i + n).-1 %% n < n. +Proof. by case: n i => [|n] [m m_lt]//=; rewrite ltn_pmod. Qed. +Definition ord_pred n (i : 'I_n) := Ordinal (ord_pred_subproof i). + +Lemma ordSK n : cancel (@ordS n) (@ord_pred n). +Proof. +move=> [i ilt]; apply/val_inj => /=. +case: (ltngtP i.+1) (ilt) => // [Silt|<-]; last by rewrite modnn/= modn_small. +by rewrite [i.+1 %% n]modn_small// addSn/= modnDr modn_small. +Qed. + +Lemma ord_predK n : cancel (@ord_pred n) (@ordS n). +Proof. +move=> [[|i] ilt]; apply/val_inj => /=. + by rewrite [n.-1 %% n]modn_small// prednK// modnn. +by rewrite modnDr [i %% n]modn_small ?modn_small// ltnW. +Qed. + +Lemma ordS_bij n : bijective (@ordS n). +Proof. exact: (Bijective (@ordSK n) (@ord_predK n)). Qed. + +Lemma ordS_inj n : injective (@ordS n). +Proof. exact: (bij_inj (ordS_bij n)). Qed. + +Lemma ord_pred_bij n : bijective (@ord_pred n). +Proof. exact (Bijective (@ord_predK n) (@ordSK n)). Qed. + +Lemma ord_pred_inj n : injective (@ord_pred n). +Proof. exact: (bij_inj (ord_pred_bij n)). Qed. + Lemma rev_ord_proof n (i : 'I_n) : n - i.+1 < n. Proof. by case: n i => [|n] [i lt_i_n] //; rewrite ltnS subSS leq_subr. Qed. Definition rev_ord n i := Ordinal (@rev_ord_proof n i). @@ -2280,9 +2354,6 @@ Arguments sub_ord {n'}. Arguments sub_ordK {n'}. Arguments inord_val {n'}. -#[deprecated(since="mathcomp 1.15.0", note="Use enum_ordSl instead.")] -Notation enum_ordS := enum_ordSl. - Lemma ord1 : all_equal_to (ord0 : 'I_1). Proof. by case=> [[] // ?]; apply: val_inj. Qed. diff --git a/mathcomp/ssreflect/order.v b/mathcomp/ssreflect/order.v index 48891672f6..1dadf2ac7c 100644 --- a/mathcomp/ssreflect/order.v +++ b/mathcomp/ssreflect/order.v @@ -16,8 +16,12 @@ From mathcomp Require Import finset. (* *) (* To access the definitions, notations, and the theory from, say, *) (* "Order.Xyz", insert "Import Order.Xyz." at the top of your scripts. *) -(* Notations are accessible by opening the scope "order_scope" bound to the *) -(* delimiting key "O". *) +(* *) +(* In order to reason about abstract orders, notations are accessible by *) +(* opening the scope "order_scope" bound to the delimiting key "O"; however, *) +(* when dealing with another notation scope providing order notations for *) +(* a concrete instance (e.g., "ring_scope"), it is not recommended to open *) +(* "order_scope" at the same time. *) (* *) (* We provide the following structures of ordered types *) (* porderType d == the type of partially ordered types *) @@ -50,13 +54,13 @@ From mathcomp Require Import finset. (* paragraph after the next. *) (* *) (* For porderType T *) -(* @Order.le disp T == <=%O (in fun_scope) *) -(* @Order.lt disp T == <%O (in fun_scope) *) -(* @Order.comparable disp T == >=<%O (in fun_scope) *) -(* @Order.ge disp T == >=%O (in fun_scope) *) -(* @Order.gt disp T == >%O (in fun_scope) *) -(* @Order.leif disp T == =<%O (in function_scope) *) +(* @Order.ge disp T == >=%O (in function_scope) *) +(* @Order.gt disp T == >%O (in function_scope) *) +(* @Order.leif disp T == =%O" := ge : fun_scope. -Notation "<%O" := lt : fun_scope. -Notation ">%O" := gt : fun_scope. -Notation "=<%O" := comparable : fun_scope. -Notation "><%O" := (fun x y => ~~ (comparable x y)) : fun_scope. +Notation "<=%O" := le : function_scope. +Notation ">=%O" := ge : function_scope. +Notation "<%O" := lt : function_scope. +Notation ">%O" := gt : function_scope. +Notation "=<%O" := comparable : function_scope. +Notation "><%O" := (fun x y => ~~ (comparable x y)) : function_scope. Notation "<= y" := (ge y) : order_scope. Notation "<= y :> T" := (<= (y : T)) (only parsing) : order_scope. @@ -1270,8 +1274,8 @@ Notation "[ 'arg' 'max_' ( i > i0 ) F ]" := [arg max_(i > i0 | true) F] (at level 0, i, i0 at level 10, format "[ 'arg' 'max_' ( i > i0 ) F ]") : order_scope. -Notation "f \min g" := (min_fun f g) : order_scope. -Notation "f \max g" := (max_fun f g) : order_scope. +Notation "f \min g" := (min_fun f g) : function_scope. +Notation "f \max g" := (max_fun f g) : function_scope. Notation leLHS := (X in (X <= _)%O)%pattern. Notation leRHS := (X in (_ <= X)%O)%pattern. @@ -2593,14 +2597,14 @@ Notation dual_top := (@top (dual_display _) _). Module Import DualSyntax. Notation "T ^d" := (dual T) (at level 2, format "T ^d") : type_scope. -Notation "<=^d%O" := dual_le : fun_scope. -Notation ">=^d%O" := dual_ge : fun_scope. -Notation "<^d%O" := dual_lt : fun_scope. -Notation ">^d%O" := dual_gt : fun_scope. -Notation "=<^d%O" := dual_comparable : fun_scope. -Notation "><^d%O" := (fun x y => ~~ dual_comparable x y) : fun_scope. +Notation "<=^d%O" := dual_le : function_scope. +Notation ">=^d%O" := dual_ge : function_scope. +Notation "<^d%O" := dual_lt : function_scope. +Notation ">^d%O" := dual_gt : function_scope. +Notation "=<^d%O" := dual_comparable : function_scope. +Notation "><^d%O" := (fun x y => ~~ dual_comparable x y) : function_scope. Notation "<=^d y" := (>=^d%O y) : order_scope. Notation "<=^d y :> T" := (<=^d (y : T)) (only parsing) : order_scope. @@ -3246,49 +3250,49 @@ Proof. by apply: (iffP idP); rewrite (rwP eqP) comparable_eq_minr. Qed. Lemma comparable_max_idPl : reflect (max x y = x) (y <= x). Proof. by apply: (iffP idP); rewrite (rwP eqP) comparable_eq_maxl. Qed. -Lemma comparable_le_minr : (z <= min x y) = (z <= x) && (z <= y). +Lemma comparable_le_min : (z <= min x y) = (z <= x) && (z <= y). Proof. case: comparableP cmp_xy => // [||<-//]; rewrite ?andbb//; last rewrite andbC; by case: (comparableP z) => // [/lt_trans xlt/xlt|->] /ltW. Qed. -Lemma comparable_le_minl : (min x y <= z) = (x <= z) || (y <= z). +Lemma comparable_ge_min : (min x y <= z) = (x <= z) || (y <= z). Proof. case: comparableP cmp_xy => // [||<-//]; rewrite ?orbb//; last rewrite orbC; by move=> xy _; apply/idP/idP => [->|/orP[]]//; apply/le_trans/ltW. Qed. -Lemma comparable_lt_minr : (z < min x y) = (z < x) && (z < y). +Lemma comparable_lt_min : (z < min x y) = (z < x) && (z < y). Proof. case: comparableP cmp_xy => // [||<-//]; rewrite ?andbb//; last rewrite andbC; by case: (comparableP z) => // /lt_trans xlt/xlt. Qed. -Lemma comparable_lt_minl : (min x y < z) = (x < z) || (y < z). +Lemma comparable_gt_min : (min x y < z) = (x < z) || (y < z). Proof. case: comparableP cmp_xy => // [||<-//]; rewrite ?orbb//; last rewrite orbC; by move=> xy _; apply/idP/idP => [->|/orP[]]//; apply/lt_trans. Qed. -Lemma comparable_le_maxr : (z <= max x y) = (z <= x) || (z <= y). +Lemma comparable_le_max : (z <= max x y) = (z <= x) || (z <= y). Proof. case: comparableP cmp_xy => // [||<-//]; rewrite ?orbb//; first rewrite orbC; by move=> xy _; apply/idP/idP => [->|/orP[]]// /le_trans->//; apply/ltW. Qed. -Lemma comparable_le_maxl : (max x y <= z) = (x <= z) && (y <= z). +Lemma comparable_ge_max : (max x y <= z) = (x <= z) && (y <= z). Proof. case: comparableP cmp_xy => // [||<-//]; rewrite ?andbb//; first rewrite andbC; by case: (comparableP z) => // [ylt /lt_trans /(_ _)/ltW|->/ltW]->. Qed. -Lemma comparable_lt_maxr : (z < max x y) = (z < x) || (z < y). +Lemma comparable_lt_max : (z < max x y) = (z < x) || (z < y). Proof. case: comparableP cmp_xy => // [||<-//]; rewrite ?orbb//; first rewrite orbC; by move=> xy _; apply/idP/idP => [->|/orP[]]// /lt_trans->. Qed. -Lemma comparable_lt_maxl : (max x y < z) = (x < z) && (y < z). +Lemma comparable_gt_max : (max x y < z) = (x < z) && (y < z). Proof. case: comparableP cmp_xy => // [||<-//]; rewrite ?andbb//; first rewrite andbC; by case: (comparableP z) => // ylt /lt_trans->. @@ -3311,19 +3315,19 @@ Proof. by case: C => /=; case: comparableP. Qed. Lemma comparable_lteif_minr C : (z < Order.min x y ?<= if C) = (z < x ?<= if C) && (z < y ?<= if C). -Proof. by case: C; rewrite /= (comparable_le_minr, comparable_lt_minr). Qed. +Proof. by case: C; rewrite /= (comparable_le_min, comparable_lt_min). Qed. Lemma comparable_lteif_minl C : (Order.min x y < z ?<= if C) = (x < z ?<= if C) || (y < z ?<= if C). -Proof. by case: C; rewrite /= (comparable_le_minl, comparable_lt_minl). Qed. +Proof. by case: C; rewrite /= (comparable_ge_min, comparable_gt_min). Qed. Lemma comparable_lteif_maxr C : (z < Order.max x y ?<= if C) = (z < x ?<= if C) || (z < y ?<= if C). -Proof. by case: C; rewrite /= (comparable_le_maxr, comparable_lt_maxr). Qed. +Proof. by case: C; rewrite /= (comparable_le_max, comparable_lt_max). Qed. Lemma comparable_lteif_maxl C : (Order.max x y < z ?<= if C) = (x < z ?<= if C) && (y < z ?<= if C). -Proof. by case: C; rewrite /= (comparable_le_maxl, comparable_lt_maxl). Qed. +Proof. by case: C; rewrite /= (comparable_ge_max, comparable_gt_max). Qed. End Comparable2. @@ -4116,29 +4120,29 @@ Proof. exact: comparable_min_idPr. Qed. Lemma max_idPl x y : reflect (max x y = x) (y <= x). Proof. exact: comparable_max_idPl. Qed. -Lemma le_minr z x y : (z <= min x y) = (z <= x) && (z <= y). -Proof. exact: comparable_le_minr. Qed. +Lemma le_min z x y : (z <= min x y) = (z <= x) && (z <= y). +Proof. exact: comparable_le_min. Qed. -Lemma le_minl z x y : (min x y <= z) = (x <= z) || (y <= z). -Proof. exact: comparable_le_minl. Qed. +Lemma ge_min z x y : (min x y <= z) = (x <= z) || (y <= z). +Proof. exact: comparable_ge_min. Qed. -Lemma lt_minr z x y : (z < min x y) = (z < x) && (z < y). -Proof. exact: comparable_lt_minr. Qed. +Lemma lt_min z x y : (z < min x y) = (z < x) && (z < y). +Proof. exact: comparable_lt_min. Qed. -Lemma lt_minl z x y : (min x y < z) = (x < z) || (y < z). -Proof. exact: comparable_lt_minl. Qed. +Lemma gt_min z x y : (min x y < z) = (x < z) || (y < z). +Proof. exact: comparable_gt_min. Qed. -Lemma le_maxr z x y : (z <= max x y) = (z <= x) || (z <= y). -Proof. exact: comparable_le_maxr. Qed. +Lemma le_max z x y : (z <= max x y) = (z <= x) || (z <= y). +Proof. exact: comparable_le_max. Qed. -Lemma le_maxl z x y : (max x y <= z) = (x <= z) && (y <= z). -Proof. exact: comparable_le_maxl. Qed. +Lemma ge_max z x y : (max x y <= z) = (x <= z) && (y <= z). +Proof. exact: comparable_ge_max. Qed. -Lemma lt_maxr z x y : (z < max x y) = (z < x) || (z < y). -Proof. exact: comparable_lt_maxr. Qed. +Lemma lt_max z x y : (z < max x y) = (z < x) || (z < y). +Proof. exact: comparable_lt_max. Qed. -Lemma lt_maxl z x y : (max x y < z) = (x < z) && (y < z). -Proof. exact: comparable_lt_maxl. Qed. +Lemma gt_max z x y : (max x y < z) = (x < z) && (y < z). +Proof. exact: comparable_gt_max. Qed. Lemma minxK x y : max (min x y) y = y. Proof. exact: comparable_minxK. Qed. Lemma minKx x y : max x (min x y) = x. Proof. exact: comparable_minKx. Qed. @@ -4158,10 +4162,10 @@ Lemma min_maxr : right_distributive (min : T -> T -> T) max. Proof. by move=> x y z; apply: comparable_min_maxr. Qed. Lemma leIx x y z : (meet y z <= x) = (y <= x) || (z <= x). -Proof. by rewrite meetEtotal le_minl. Qed. +Proof. by rewrite meetEtotal ge_min. Qed. Lemma lexU x y z : (x <= join y z) = (x <= y) || (x <= z). -Proof. by rewrite joinEtotal le_maxr. Qed. +Proof. by rewrite joinEtotal le_max. Qed. Lemma ltxI x y z : (x < meet y z) = (x < y) && (x < z). Proof. by rewrite !ltNge leIx negb_or. Qed. @@ -4187,19 +4191,19 @@ Proof. by case: C => /=; case: leP. Qed. Lemma lteif_minr z x y C : (z < Order.min x y ?<= if C) = (z < x ?<= if C) && (z < y ?<= if C). -Proof. by case: C; rewrite /= (le_minr, lt_minr). Qed. +Proof. by case: C; rewrite /= (le_min, lt_min). Qed. Lemma lteif_minl z x y C : (Order.min x y < z ?<= if C) = (x < z ?<= if C) || (y < z ?<= if C). -Proof. by case: C; rewrite /= (le_minl, lt_minl). Qed. +Proof. by case: C; rewrite /= (ge_min, gt_min). Qed. Lemma lteif_maxr z x y C : (z < Order.max x y ?<= if C) = (z < x ?<= if C) || (z < y ?<= if C). -Proof. by case: C; rewrite /= (le_maxr, lt_maxr). Qed. +Proof. by case: C; rewrite /= (le_max, lt_max). Qed. Lemma lteif_maxl z x y C : (Order.max x y < z ?<= if C) = (x < z ?<= if C) && (y < z ?<= if C). -Proof. by case: C; rewrite /= (le_maxl, lt_maxl). Qed. +Proof. by case: C; rewrite /= (ge_max, gt_max). Qed. Section ArgExtremum. @@ -4235,6 +4239,32 @@ Lemma bigmax_mkcond P F : \big[max/x]_(i <- r | P i) F i = \big[max/x]_(i <- r) if P i then F i else x. Proof. by rewrite big_mkcond_idem ?maxxx//; [exact: maxA|exact: maxC]. Qed. +Lemma bigmin_mkcondl P Q F : + \big[min/x]_(i <- r | P i && Q i) F i + = \big[min/x]_(i <- r | Q i) if P i then F i else x. +Proof. +rewrite bigmin_mkcond [RHS]bigmin_mkcond. +by apply: eq_bigr => i _; case: P; case: Q. +Qed. + +Lemma bigmin_mkcondr P Q F : + \big[min/x]_(i <- r | P i && Q i) F i + = \big[min/x]_(i <- r | P i) if Q i then F i else x. +Proof. by under eq_bigl do rewrite andbC; apply: bigmin_mkcondl. Qed. + +Lemma bigmax_mkcondl P Q F : + \big[max/x]_(i <- r | P i && Q i) F i + = \big[max/x]_(i <- r | Q i) if P i then F i else x. +Proof. +rewrite bigmax_mkcond [RHS]bigmax_mkcond. +by apply: eq_bigr => i _; case: P; case: Q. +Qed. + +Lemma bigmax_mkcondr P Q F : + \big[max/x]_(i <- r | P i && Q i) F i + = \big[max/x]_(i <- r | P i) if Q i then F i else x. +Proof. by under eq_bigl do rewrite andbC; apply: bigmax_mkcondl. Qed. + Lemma bigmin_split P F1 F2 : \big[min/x]_(i <- r | P i) (min (F1 i) (F2 i)) = min (\big[min/x]_(i <- r | P i) F1 i) (\big[min/x]_(i <- r | P i) F2 i). @@ -4273,8 +4303,8 @@ Proof. by rewrite (bigID_idem maxA maxC _ _ a) ?maxxx. Qed. End bigminmax_Type. -Let le_minr_id (x y : T) : x >= min x y. Proof. by rewrite le_minl lexx. Qed. -Let le_maxr_id (x y : T) : x <= max x y. Proof. by rewrite le_maxr lexx. Qed. +Let ge_min_id (x y : T) : x >= min x y. Proof. by rewrite ge_min lexx. Qed. +Let le_max_id (x y : T) : x <= max x y. Proof. by rewrite le_max lexx. Qed. Lemma sub_bigmin [x0] I r (P P' : {pred I}) (F : I -> T) : (forall i, P' i -> P i) -> @@ -4372,6 +4402,26 @@ Lemma subset_bigmax_cond [x0] (I : finType) (A A' P P' : {pred I}) (F : I -> T) \big[max/x0]_(i in A | P i) F i <= \big[max/x0]_(i in A' | P' i) F i. Proof. exact: (subset_le_big_cond maxA maxC). Qed. +Section bigminmax_eqType. +Variable (I : eqType) (r : seq I) (x : T). +Implicit Types (P : pred I) (F : I -> T). + +Lemma bigmin_le_id P F : \big[min/x]_(i <- r | P i) F i <= x. +Proof. by rewrite bigmin_idl. Qed. + +Lemma bigmax_ge_id P F : \big[max/x]_(i <- r | P i) F i >= x. +Proof. by rewrite bigmax_idl. Qed. + +Lemma bigmin_eq_id P F : + (forall i, P i -> x <= F i) -> \big[min/x]_(i <- r | P i) F i = x. +Proof. by move=> x_le; apply: le_anti; rewrite bigmin_le_id le_bigmin. Qed. + +Lemma bigmax_eq_id P F : + (forall i, P i -> x >= F i) -> \big[max/x]_(i <- r | P i) F i = x. +Proof. by move=> x_ge; apply: le_anti; rewrite bigmax_ge_id bigmax_le. Qed. + +End bigminmax_eqType. + Section bigminmax_finType. Variable (I : finType) (x : T). Implicit Types (P : pred I) (F : I -> T). @@ -4387,12 +4437,12 @@ Proof. by move/(bigD1_AC maxA maxC) ->. Qed. Lemma bigmin_le_cond j P F : P j -> \big[min/x]_(i | P i) F i <= F j. Proof. have := mem_index_enum j; rewrite unlock; elim: (index_enum I) => //= i l ih. -rewrite inE => /orP [/eqP-> ->|/ih leminlfi Pi]; first by rewrite le_minl lexx. -by case: ifPn => Pj; [rewrite le_minl leminlfi// orbC|exact: leminlfi]. +rewrite inE => /orP [/eqP-> ->|/ih leminlfi Pi]; first by rewrite ge_min lexx. +by case: ifPn => Pj; [rewrite ge_min leminlfi// orbC|exact: leminlfi]. Qed. Lemma le_bigmax_cond j P F : P j -> F j <= \big[max/x]_(i | P i) F i. -Proof. by move=> Pj; rewrite (bigmaxD1 _ Pj) le_maxr lexx. Qed. +Proof. by move=> Pj; rewrite (bigmaxD1 _ Pj) le_max lexx. Qed. Lemma bigmin_le j F : \big[min/x]_i F i <= F j. Proof. exact: bigmin_le_cond. Qed. @@ -4412,7 +4462,7 @@ Lemma bigmin_geP m P F : (m <= \big[min/x]_(i | P i) F i). Proof. apply: (iffP idP) => [lemFi|[lemx lemPi]]; [split|exact: le_bigmin]. -- by rewrite (le_trans lemFi)// bigmin_idl le_minl lexx. +- by rewrite (le_trans lemFi)// bigmin_idl ge_min lexx. - by move=> i Pi; rewrite (le_trans lemFi)// (bigminD1 _ Pi)// le_minl lexx. Qed. @@ -4421,7 +4471,7 @@ Lemma bigmax_leP m P F : (\big[max/x]_(i | P i) F i <= m). Proof. apply: (iffP idP) => [|[? ?]]; last exact: bigmax_le. -rewrite bigmax_idl le_maxl => /andP[-> leFm]; split=> // i Pi. +rewrite bigmax_idl ge_max => /andP[-> leFm]; split=> // i Pi. by apply: le_trans leFm; exact: le_bigmax_cond. Qed. @@ -4429,7 +4479,7 @@ Lemma bigmin_gtP m P F : reflect (m < x /\ forall i, P i -> m < F i) (m < \big[min/x]_(i | P i) F i). Proof. apply: (iffP idP) => [lemFi|[lemx lemPi]]; [split|exact: lt_bigmin]. -- by rewrite (lt_le_trans lemFi)// bigmin_idl le_minl lexx. +- by rewrite (lt_le_trans lemFi)// bigmin_idl ge_min lexx. - by move=> i Pi; rewrite (lt_le_trans lemFi)// (bigminD1 _ Pi)// le_minl lexx. Qed. @@ -4437,7 +4487,7 @@ Lemma bigmax_ltP m P F : reflect (x < m /\ forall i, P i -> F i < m) (\big[max/x]_(i | P i) F i < m). Proof. apply: (iffP idP) => [|[? ?]]; last exact: bigmax_lt. -rewrite bigmax_idl lt_maxl => /andP[-> ltFm]; split=> // i Pi. +rewrite bigmax_idl gt_max => /andP[-> ltFm]; split=> // i Pi. by apply: le_lt_trans ltFm; exact: le_bigmax_cond. Qed. @@ -4473,7 +4523,7 @@ Lemma le_bigmin2 P F1 F2 : (forall i, P i -> F1 i <= F2 i) -> \big[min/x]_(i | P i) F1 i <= \big[min/x]_(i | P i) F2 i. Proof. move=> FG; elim/big_ind2 : _ => // a b e f ba fe. -rewrite le_minl 2!le_minr ba fe /= andbT. +rewrite ge_min 2!le_min ba fe /= andbT. move: (le_total a e) => /orP[/(le_trans ba)-> // | /(le_trans fe)->]. by rewrite orbT. Qed. @@ -4482,12 +4532,86 @@ Lemma le_bigmax2 P F1 F2 : (forall i, P i -> F1 i <= F2 i) -> \big[max/x]_(i | P i) F1 i <= \big[max/x]_(i | P i) F2 i. Proof. move=> FG; elim/big_ind2 : _ => // a b e f ba fe. -rewrite le_maxr 2!le_maxl ba fe /= andbT; have [//|/= af] := leP f a. +rewrite le_max 2!ge_max ba fe /= andbT; have [//|/= af] := leP f a. by rewrite (le_trans ba) // (le_trans _ fe) // ltW. Qed. +Lemma bigmaxUl (A B : {set I}) F : + \big[max/x]_(i in A) F i <= \big[max/x]_(i in A :|: B) F i. +Proof. by apply: sub_bigmax => t; rewrite in_setU => ->. Qed. + +Lemma bigmaxUr (A B : {set I}) F : + \big[max/x]_(i in B) F i <= \big[max/x]_(i in A :|: B) F i. +Proof. by under [leRHS]eq_bigl do rewrite setUC; apply: bigmaxUl. Qed. + +Lemma bigminUl (A B : {set I}) F : + \big[min/x]_(i in A) F i >= \big[min/x]_(i in A :|: B) F i. +Proof. by apply: sub_bigmin => t; rewrite in_setU => ->. Qed. + +Lemma bigminUr (A B : {set I}) F : + \big[min/x]_(i in B) F i >= \big[min/x]_(i in A :|: B) F i. +Proof. by under [leLHS]eq_bigl do rewrite setUC; apply: bigminUl. Qed. + +Lemma bigmaxIl (A B : {set I}) F : + \big[max/x]_(i in A) F i >= \big[max/x]_(i in A :&: B) F i. +Proof. by apply: sub_bigmax => t; rewrite in_setI => /andP[-> _]. Qed. + +Lemma bigmaxIr (A B : {set I}) F : + \big[max/x]_(i in B) F i >= \big[max/x]_(i in A :&: B) F i. +Proof. by under eq_bigl do rewrite setIC; apply: bigmaxIl. Qed. + +Lemma bigminIl (A B : {set I}) F : + \big[min/x]_(i in A) F i <= \big[min/x]_(i in A :&: B) F i. +Proof. by apply: sub_bigmin => t; rewrite in_setI => /andP[->_]. Qed. + +Lemma bigminIr (A B : {set I}) F : + \big[min/x]_(i in B) F i <= \big[min/x]_(i in A :&: B) F i. +Proof. by under [leRHS]eq_bigl do rewrite setIC; apply: bigminIl. Qed. + +Lemma bigmaxD (A B : {set I}) F : + \big[max/x]_(i in B) F i >= \big[max/x]_(i in B :\: A) F i. +Proof. by apply: sub_bigmax => t; rewrite in_setD => /andP[_->]. Qed. + +Lemma bigminD (A B : {set I}) F : + \big[min/x]_(i in B) F i <= \big[min/x]_(i in B :\: A) F i. +Proof. by apply: sub_bigmin => t; rewrite in_setD => /andP[_->]. Qed. + +Lemma bigmaxU (A B : {set I}) F : + \big[max/x]_(i in A :|: B) F i + = max (\big[max/x]_(i in A) F i) (\big[max/x]_(i in B) F i). +Proof. +apply: le_anti; rewrite ge_max bigmaxUl bigmaxUr !andbT; apply/bigmax_leP. +split=> [|i /[!in_setU]/orP[iA|iB]]; first by rewrite le_max bigmax_ge_id. +- by rewrite le_max le_bigmax_cond. +- by rewrite le_max orbC le_bigmax_cond. +Qed. + +Lemma bigminU (A B : {set I}) F : + \big[min/x]_(i in A :|: B) F i + = min (\big[min/x]_(i in A) F i) (\big[min/x]_(i in B) F i). +Proof. +apply: le_anti; rewrite le_min bigminUl bigminUr !andbT; apply/bigmin_geP. +split=> [|i /[!in_setU]/orP[iA|iB]]; first by rewrite ge_min bigmin_le_id. +- by rewrite ge_min bigmin_le_cond. +- by rewrite ge_min orbC bigmin_le_cond. +Qed. + +Lemma bigmin_set1 j F : \big[min/x]_(i in [set j]) F i = min (F j) x. +Proof. exact: big_set1E. Qed. + +Lemma bigmax_set1 j F : \big[max/x]_(i in [set j]) F i = max (F j) x. +Proof. exact: big_set1E. Qed. + End bigminmax_finType. +Lemma bigmin_imset [I J : finType] x [h : I -> J] [A : {set I}] (F : J -> T) : + \big[min/x]_(j in [set h x | x in A]) F j = \big[min/x]_(i in A) F (h i). +Proof. by apply: big_imset_idem; [apply: minA|apply: minC|apply: minxx]. Qed. + +Lemma bigmax_imset [I J : finType] x [h : I -> J] [A : {set I}] (F : J -> T) : + \big[max/x]_(j in [set h x | x in A]) F j = \big[max/x]_(i in A) F (h i). +Proof. by apply: big_imset_idem; [apply: maxA|apply: maxC|apply: maxxx]. Qed. + End TotalTheory. #[global] Hint Resolve le_total : core. @@ -4601,6 +4725,40 @@ Lemma le_nmono_in : Proof. exact: total_homo_mono_in. Qed. End TotalMonotonyTheory. + +#[deprecated(since="mathcomp 1.18.0", note="Use comparable_le_min instead.")] +Notation comparable_le_minr := comparable_le_min. +#[deprecated(since="mathcomp 1.18.0", note="Use comparable_ge_min instead.")] +Notation comparable_le_minl := comparable_ge_min. +#[deprecated(since="mathcomp 1.18.0", note="Use comparable_gt_min instead.")] +Notation comparable_lt_minl := comparable_gt_min. +#[deprecated(since="mathcomp 1.18.0", note="Use comparable_lt_min instead.")] +Notation comparable_lt_minr := comparable_lt_min. +#[deprecated(since="mathcomp 1.18.0", note="Use comparable_le_max instead.")] +Notation comparable_le_maxr := comparable_le_max. +#[deprecated(since="mathcomp 1.18.0", note="Use comparable_ge_max instead.")] +Notation comparable_le_maxl := comparable_ge_max. +#[deprecated(since="mathcomp 1.18.0", note="Use comparable_lt_max instead.")] +Notation comparable_lt_maxr := comparable_lt_max. +#[deprecated(since="mathcomp 1.18.0", note="Use comparable_gt_max instead.")] +Notation comparable_lt_maxl := comparable_gt_max. +#[deprecated(since="mathcomp 1.18.0", note="Use ge_max instead.")] +Notation le_maxl := ge_max. +#[deprecated(since="mathcomp 1.18.0", note="Use le_max instead.")] +Notation le_maxr := le_max. +#[deprecated(since="mathcomp 1.18.0", note="Use gt_max instead.")] +Notation lt_maxl := gt_max. +#[deprecated(since="mathcomp 1.18.0", note="Use lt_max instead.")] +Notation lt_maxr := lt_max. +#[deprecated(since="mathcomp 1.18.0", note="Use lt_min instead.")] +Notation lt_minr := lt_min. +#[deprecated(since="mathcomp 1.18.0", note="Use gt_max instead.")] +Notation lt_minl := gt_min. +#[deprecated(since="mathcomp 1.18.0", note="Use le_min instead.")] +Notation le_minr := le_min. +#[deprecated(since="mathcomp 1.18.0", note="Use ge_min instead.")] +Notation le_minl := ge_min. + End TotalTheory. Module Import BLatticeTheory. @@ -6165,20 +6323,20 @@ Module DvdSyntax. Notation dvd := (@le dvd_display _). Notation "@ 'dvd' T" := - (@le dvd_display T) (at level 10, T at level 8, only parsing) : fun_scope. + (@le dvd_display T) (at level 10, T at level 8, only parsing) : function_scope. Notation sdvd := (@lt dvd_display _). Notation "@ 'sdvd' T" := - (@lt dvd_display T) (at level 10, T at level 8, only parsing) : fun_scope. + (@lt dvd_display T) (at level 10, T at level 8, only parsing) : function_scope. Notation "x %| y" := (dvd x y) : order_scope. Notation "x %<| y" := (sdvd x y) : order_scope. Notation gcd := (@meet dvd_display _). Notation "@ 'gcd' T" := - (@meet dvd_display T) (at level 10, T at level 8, only parsing) : fun_scope. + (@meet dvd_display T) (at level 10, T at level 8, only parsing) : function_scope. Notation lcm := (@join dvd_display _). Notation "@ 'lcm' T" := - (@join dvd_display T) (at level 10, T at level 8, only parsing) : fun_scope. + (@join dvd_display T) (at level 10, T at level 8, only parsing) : function_scope. Notation nat0 := (@top dvd_display _). Notation nat1 := (@bottom dvd_display _). @@ -6483,15 +6641,15 @@ Fact prod_display : unit. Proof. by []. Qed. Module Import ProdSyntax. -Notation "<=^p%O" := (@le prod_display _) : fun_scope. -Notation ">=^p%O" := (@ge prod_display _) : fun_scope. -Notation ">=^p%O" := (@ge prod_display _) : fun_scope. -Notation "<^p%O" := (@lt prod_display _) : fun_scope. -Notation ">^p%O" := (@gt prod_display _) : fun_scope. -Notation "=<^p%O" := (@comparable prod_display _) : fun_scope. +Notation "<=^p%O" := (@le prod_display _) : function_scope. +Notation ">=^p%O" := (@ge prod_display _) : function_scope. +Notation ">=^p%O" := (@ge prod_display _) : function_scope. +Notation "<^p%O" := (@lt prod_display _) : function_scope. +Notation ">^p%O" := (@gt prod_display _) : function_scope. +Notation "=<^p%O" := (@comparable prod_display _) : function_scope. Notation "><^p%O" := (fun x y => ~~ (@comparable prod_display _ x y)) : - fun_scope. + function_scope. Notation "<=^p y" := (>=^p%O y) : order_scope. Notation "<=^p y :> T" := (<=^p (y : T)) (only parsing) : order_scope. @@ -6600,15 +6758,15 @@ Fact lexi_display : unit. Proof. by []. Qed. Module Import LexiSyntax. -Notation "<=^l%O" := (@le lexi_display _) : fun_scope. -Notation ">=^l%O" := (@ge lexi_display _) : fun_scope. -Notation ">=^l%O" := (@ge lexi_display _) : fun_scope. -Notation "<^l%O" := (@lt lexi_display _) : fun_scope. -Notation ">^l%O" := (@gt lexi_display _) : fun_scope. -Notation "=<^l%O" := (@comparable lexi_display _) : fun_scope. +Notation "<=^l%O" := (@le lexi_display _) : function_scope. +Notation ">=^l%O" := (@ge lexi_display _) : function_scope. +Notation ">=^l%O" := (@ge lexi_display _) : function_scope. +Notation "<^l%O" := (@lt lexi_display _) : function_scope. +Notation ">^l%O" := (@gt lexi_display _) : function_scope. +Notation "=<^l%O" := (@comparable lexi_display _) : function_scope. Notation "><^l%O" := (fun x y => ~~ (@comparable lexi_display _ x y)) : - fun_scope. + function_scope. Notation "<=^l y" := (>=^l%O y) : order_scope. Notation "<=^l y :> T" := (<=^l (y : T)) (only parsing) : order_scope. diff --git a/mathcomp/ssreflect/seq.v b/mathcomp/ssreflect/seq.v index 1e718efe79..072a446a7f 100644 --- a/mathcomp/ssreflect/seq.v +++ b/mathcomp/ssreflect/seq.v @@ -900,7 +900,7 @@ Lemma size_rev s : size (rev s) = size s. Proof. by elim: s => // x s IHs; rewrite rev_cons size_rcons IHs. Qed. Lemma rev_nilp s : nilp (rev s) = nilp s. -Proof. by move: s (rev s) (size_rev s) => [|? ?] []. Qed. +Proof. by rewrite /nilp size_rev. Qed. Lemma rev_cat s t : rev (s ++ t) = rev t ++ rev s. Proof. by rewrite -catrev_catr -catrev_catl. Qed. @@ -2386,6 +2386,13 @@ Proof. by apply: subseq_uniq; apply: rem_subseq. Qed. Lemma mem_rem s : {subset rem s <= s}. Proof. exact: mem_subseq (rem_subseq s). Qed. +Lemma rem_mem y s : y != x -> y \in s -> y \in rem s. +Proof. +move=> yx; elim: s => [//|z s IHs] /=. +rewrite inE => /orP[/eqP<-|ys]; first by rewrite (negbTE yx) inE eqxx. +by case: ifP => _ //; rewrite inE IHs ?orbT. +Qed. + Lemma rem_filter s : uniq s -> rem s = filter (predC1 x) s. Proof. elim: s => //= y s IHs /andP[not_s_y /IHs->]. @@ -3081,6 +3088,20 @@ Proof. by rewrite -cats1 foldl_cat. Qed. End FoldLeft. +Section Folds. + +Variables (T : Type) (f : T -> T -> T). + +Hypotheses (fA : associative f) (fC : commutative f). + +Lemma foldl_foldr x0 l : foldl f x0 l = foldr f x0 l. +Proof. +elim: l x0 => [//|x1 l IHl] x0 /=; rewrite {}IHl. +by elim: l x0 x1 => [//|x2 l IHl] x0 x1 /=; rewrite IHl !fA [f x2 x1]fC. +Qed. + +End Folds. + Section Scan. Variables (T1 : Type) (x1 : T1) (T2 : Type) (x2 : T2). @@ -3205,8 +3226,43 @@ Lemma zip_map I f g (s : seq I) : zip (map f s) (map g s) = [seq (f i, g i) | i <- s]. Proof. by elim: s => //= i s ->. Qed. +Lemma unzip1_map_nth_zip x y s t l : + size s = size t -> + unzip1 [seq nth (x, y) (zip s t) i | i <- l] = [seq nth x s i | i <- l]. +Proof. by move=> st; elim: l => [//=|n l IH /=]; rewrite nth_zip ?IH ?st. Qed. + +Lemma unzip2_map_nth_zip x y s t l : + size s = size t -> + unzip2 [seq nth (x, y) (zip s t) i | i <- l] = [seq nth y t i | i <- l]. +Proof. by move=> st; elim: l => [//=|n l IH /=]; rewrite nth_zip ?IH ?st. Qed. + End Zip. +Lemma perm_zip_sym (S T : eqType) (s1 s2 : seq S) (t1 t2 : seq T) : + perm_eq (zip s1 t1) (zip s2 t2) -> perm_eq (zip t1 s1) (zip t2 s2). +Proof. +have swap t s : zip t s = map (fun u => (u.2, u.1)) (zip s t). + by elim: s t => [|x s +] [|y t]//= => ->. +by rewrite [zip t1 s1]swap [zip t2 s2]swap; apply: perm_map. +Qed. + +Lemma perm_zip1 {S T : eqType} (t1 t2 : seq T) (s1 s2 : seq S): + size s1 = size t1 -> size s2 = size t2 -> + perm_eq (zip s1 t1) (zip s2 t2) -> perm_eq s1 s2. +Proof. +wlog [x y] : s1 s2 t1 t2 / (S * T)%type => [hwlog|]. + case: s2 t2 => [|x s2] [|y t2] //; last exact: hwlog. + by case: s1 t1 => [|u s1] [|v t1]//= _ _ /perm_nilP. +move=> eq1 eq2 /(perm_iotaP (x, y))[ns nsP /(congr1 (@unzip1 _ _))]. +rewrite unzip1_zip ?unzip1_map_nth_zip -?eq1// => ->. +by apply/(perm_iotaP x); exists ns; rewrite // size_zip -eq2 minnn in nsP. +Qed. + +Lemma perm_zip2 {S T : eqType} (s1 s2 : seq S) (t1 t2 : seq T) : + size s1 = size t1 -> size s2 = size t2 -> + perm_eq (zip s1 t1) (zip s2 t2) -> perm_eq t1 t2. +Proof. by move=> ? ? ?; rewrite (@perm_zip1 _ _ s1 s2) 1?perm_zip_sym. Qed. + Prenex Implicits zip unzip1 unzip2 all2. Lemma eqseq_all (T : eqType) (s t : seq T) : (s == t) = all2 eq_op s t. @@ -4192,6 +4248,31 @@ Lemma allrel_relI {T S : Type} (r r' : T -> S -> bool) xs ys : allrel (fun x y => r x y && r' x y) xs ys = allrel r xs ys && allrel r' xs ys. Proof. by rewrite -all_predI; apply: eq_all => ?; rewrite /= -all_predI. Qed. +Lemma allrel_revl {T S : Type} (r : T -> S -> bool) (s1 : seq T) (s2 : seq S) : + allrel r (rev s1) s2 = allrel r s1 s2. +Proof. exact: all_rev. Qed. + +Lemma allrel_revr {T S : Type} (r : T -> S -> bool) (s1 : seq T) (s2 : seq S) : + allrel r s1 (rev s2) = allrel r s1 s2. +Proof. by rewrite allrelC allrel_revl allrelC. Qed. + +Lemma allrel_rev2 {T S : Type} (r : T -> S -> bool) (s1 : seq T) (s2 : seq S) : + allrel r (rev s1) (rev s2) = allrel r s1 s2. +Proof. by rewrite allrel_revr allrel_revl. Qed. + +Lemma eq_allrel_meml {T : eqType} {S} (r : T -> S -> bool) (s1 s1' : seq T) s2 : + s1 =i s1' -> allrel r s1 s2 = allrel r s1' s2. +Proof. by move=> eqs1; apply: eq_all_r. Qed. + +Lemma eq_allrel_memr {T} {S : eqType} (r : T -> S -> bool) s1 (s2 s2' : seq S) : + s2 =i s2' -> allrel r s1 s2 = allrel r s1 s2'. +Proof. by rewrite ![allrel _ s1 _]allrelC; apply: eq_allrel_meml. Qed. + +Lemma eq_allrel_mem2 {T S : eqType} (r : T -> S -> bool) + (s1 s1' : seq T) (s2 s2' : seq S) : + s1 =i s1' -> s2 =i s2' -> allrel r s1 s2 = allrel r s1' s2'. +Proof. by move=> /eq_allrel_meml -> /eq_allrel_memr ->. Qed. + Section All2Rel. Variable (T : nonPropType) (r : rel T). diff --git a/mathcomp/ssreflect/ssrAC.v b/mathcomp/ssreflect/ssrAC.v index 4e94a77e09..219d77f4eb 100644 --- a/mathcomp/ssreflect/ssrAC.v +++ b/mathcomp/ssreflect/ssrAC.v @@ -1,5 +1,8 @@ Require Import BinPos BinNat. +(* use #[warning="-hiding-delimiting-key"] attribute once we require Coq 8.18 *) +Set Warnings "-hiding-delimiting-key". From mathcomp Require Import ssreflect ssrbool ssrfun ssrnat eqtype seq bigop. +Set Warnings "hiding-delimiting-key". Set Implicit Arguments. Unset Strict Implicit. Unset Printing Implicit Defensive. diff --git a/mathcomp/ssreflect/ssrbool.v b/mathcomp/ssreflect/ssrbool.v index cbbb147f60..6e29f9dc2f 100644 --- a/mathcomp/ssreflect/ssrbool.v +++ b/mathcomp/ssreflect/ssrbool.v @@ -1,10 +1,6 @@ From mathcomp Require Import ssreflect ssrfun. From Coq Require Export ssrbool. -(* 8.11 addition in Coq but renamed *) -#[deprecated(since="mathcomp 1.15", note="Use rel_of_simpl instead.")] -Notation rel_of_simpl_rel := rel_of_simpl. - (******************************************************************************) (* Local additions: *) (* [in A] == the applicative counterpart of a collective predicate A: *) @@ -160,10 +156,48 @@ Proof. by case: b1 b2 => [] []. Qed. (********************) Notation "[ 'in' A ]" := (in_mem^~ (mem A)) - (at level 0, format "[ 'in' A ]") : fun_scope. - -Notation "[ 'predI' A & B ]" := (predI [in A] [in B]) : fun_scope. -Notation "[ 'predU' A & B ]" := (predU [in A] [in B]) : fun_scope. -Notation "[ 'predD' A & B ]" := (predD [in A] [in B]) : fun_scope. -Notation "[ 'predC' A ]" := (predC [in A]) : fun_scope. -Notation "[ 'preim' f 'of' A ]" := (preim f [in A]) : fun_scope. + (at level 0, format "[ 'in' A ]") : function_scope. + +Lemma relpre_trans {T' T : Type} {leT : rel T} {f : T' -> T} : + transitive leT -> transitive (relpre f leT). +Proof. by move=> + y x z; apply. Qed. + +(* The notations below are already defined in Coq.ssr.ssrbool, but we redefine*) +(* them in different notation scopes (mostly fun_scope -> function_scope, in *) +(* order to replace the former with the latter). *) + +Notation "[ 'pred' : T | E ]" := (SimplPred (fun _ : T => E%B)) : + function_scope. +Notation "[ 'pred' x | E ]" := (SimplPred (fun x => E%B)) : function_scope. +Notation "[ 'pred' x | E1 & E2 ]" := [pred x | E1 && E2 ] : function_scope. +Notation "[ 'pred' x : T | E ]" := + (SimplPred (fun x : T => E%B)) (only parsing) : function_scope. +Notation "[ 'pred' x : T | E1 & E2 ]" := + [pred x : T | E1 && E2 ] (only parsing) : function_scope. + +Notation "[ 'rel' x y | E ]" := (SimplRel (fun x y => E%B)) + (only parsing) : function_scope. +Notation "[ 'rel' x y : T | E ]" := + (SimplRel (fun x y : T => E%B)) (only parsing) : function_scope. + +Notation "[ 'mem' A ]" := + (pred_of_simpl (simpl_of_mem (mem A))) (only parsing) : function_scope. + +Notation "[ 'pred' x 'in' A ]" := [pred x | x \in A] : function_scope. +Notation "[ 'pred' x 'in' A | E ]" := [pred x | x \in A & E] : function_scope. +Notation "[ 'pred' x 'in' A | E1 & E2 ]" := + [pred x | x \in A & E1 && E2 ] : function_scope. + +Notation "[ 'rel' x y 'in' A & B | E ]" := + [rel x y | (x \in A) && (y \in B) && E] : function_scope. +Notation "[ 'rel' x y 'in' A & B ]" := + [rel x y | (x \in A) && (y \in B)] : function_scope. +Notation "[ 'rel' x y 'in' A | E ]" := [rel x y in A & A | E] : function_scope. +Notation "[ 'rel' x y 'in' A ]" := [rel x y in A & A] : function_scope. + +(* Both bodies and the scope have been changed for the following notations. *) +Notation "[ 'predI' A & B ]" := (predI [in A] [in B]) : function_scope. +Notation "[ 'predU' A & B ]" := (predU [in A] [in B]) : function_scope. +Notation "[ 'predD' A & B ]" := (predD [in A] [in B]) : function_scope. +Notation "[ 'predC' A ]" := (predC [in A]) : function_scope. +Notation "[ 'preim' f 'of' A ]" := (preim f [in A]) : function_scope. diff --git a/mathcomp/ssreflect/ssrfun.v b/mathcomp/ssreflect/ssrfun.v index b72a940089..bdda91775f 100644 --- a/mathcomp/ssreflect/ssrfun.v +++ b/mathcomp/ssreflect/ssrfun.v @@ -66,8 +66,6 @@ Qed. (* v8.18 additions *) (*******************) -(* this change of order has also been PRed to Coq PR 17249 *) -Notation "@ 'sval'" := (@proj1_sig) (at level 10, format "@ 'sval'"). Notation sval := (@proj1_sig _ _). (**********************) @@ -87,3 +85,44 @@ Proof. by move=> Ef [?|] //=; rewrite Ef. Qed. Lemma omapK {aT rT : Type} (f : aT -> rT) (g : rT -> aT) : cancel f g -> cancel (omap f) (omap g). Proof. by move=> fK [?|] //=; rewrite fK. Qed. + +(* The notations below are already defined in Coq.ssr.ssrfun, but we redefine *) +(* them in different notation scopes (mostly fun_scope -> function_scope, in *) +(* order to replace the former with the latter). *) + +Open Scope function_scope. + +Notation "f ^~ y" := (fun x => f x y) : function_scope. +Notation "@^~ x" := (fun f => f x) : function_scope. + +Notation "[ 'fun' : T => E ]" := (SimplFun (fun _ : T => E)) : function_scope. +Notation "[ 'fun' x => E ]" := (SimplFun (fun x => E)) : function_scope. +Notation "[ 'fun' x y => E ]" := (fun x => [fun y => E]) : function_scope. +Notation "[ 'fun' x : T => E ]" := (SimplFun (fun x : T => E)) + (only parsing) : function_scope. +Notation "[ 'fun' x y : T => E ]" := (fun x : T => [fun y : T => E]) + (only parsing) : function_scope. +Notation "[ 'fun' ( x : T ) y => E ]" := (fun x : T => [fun y => E]) + (only parsing) : function_scope. +Notation "[ 'fun' x ( y : T ) => E ]" := (fun x => [fun y : T => E]) + (only parsing) : function_scope. +Notation "[ 'fun' ( x : T ) ( y : U ) => E ]" := (fun x : T => [fun y : U => E]) + (only parsing) : function_scope. + +Notation "f1 =1 f2" := (eqfun f1 f2) : type_scope. +Notation "f1 =1 f2 :> A" := (f1 =1 (f2 : A)) : type_scope. +Notation "f1 =2 f2" := (eqrel f1 f2) : type_scope. +Notation "f1 =2 f2 :> A" := (f1 =2 (f2 : A)) : type_scope. + +Notation "f1 \o f2" := (comp f1 f2) : function_scope. +Notation "f1 \; f2" := (catcomp f1 f2) : function_scope. + +Notation "[ 'eta' f ]" := (fun x => f x) : function_scope. + +Notation "'fun' => E" := (fun _ => E) : function_scope. + +Notation "@ 'id' T" := (fun x : T => x) + (at level 10, T at level 8, only parsing) : function_scope. + +Notation "@ 'sval'" := (@proj1_sig) (at level 10, only parsing) : + function_scope. diff --git a/mathcomp/ssreflect/ssrnat.v b/mathcomp/ssreflect/ssrnat.v index b8753bcb2f..0b65c0fa43 100644 --- a/mathcomp/ssreflect/ssrnat.v +++ b/mathcomp/ssreflect/ssrnat.v @@ -4,6 +4,9 @@ From mathcomp Require Import ssreflect ssrfun ssrbool eqtype. Require Import BinNat. Require BinPos Ndec. Require Export Ring. +#[export] Set Warnings "-overwriting-delimiting-key". +(* because there is some Set Warnings "overwriting-delimiting-key". + somewhere in the above *) (******************************************************************************) (* A version of arithmetic on nat (natural numbers) that is better suited to *) @@ -135,7 +138,10 @@ Notation "m > n" := (gt m n) : coq_nat_scope. (* i.e., unprotected version of operators. *) Delimit Scope N_scope with num. +(* use #[warning="-hiding-delimiting-key"] attribute once we require Coq 8.18 *) +Set Warnings "-hiding-delimiting-key". Delimit Scope nat_scope with N. +Set Warnings "hiding-delimiting-key". Delimit Scope nat_rec_scope with Nrec. (* Postfix notation for the successor and predecessor functions. *) @@ -243,6 +249,10 @@ Proof. by move=> m n p q; rewrite -!addnA (addnCA n). Qed. Lemma addn_eq0 m n : (m + n == 0) = (m == 0) && (n == 0). Proof. by case: m; case: n. Qed. +Lemma addn_eq1 m n : + (m + n == 1) = ((m == 1) && (n == 0)) || ((m == 0) && (n == 1)). +Proof. by case: m n => [|[|m]] [|[|n]]. Qed. + Lemma eqn_add2l p m n : (p + m == p + n) = (m == n). Proof. by elim: p. Qed. @@ -1985,7 +1995,10 @@ Arguments N.eqb !n !m. Section NumberInterpretation. +(* use #[warning="-hiding-delimiting-key"] attribute once we require Coq 8.18 *) +Set Warnings "-hiding-delimiting-key". Import BinPos. +Set Warnings "hiding-delimiting-key". Section Trec.