diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index d44538c4..8f849ca5 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -29,14 +29,11 @@ jobs: working-directory: .ddraig-ssg run: idris2 Ddraig.idr -o ddraig - name: Build site + run: ./.ddraig-ssg/build/exec/ddraig build site _site https://nesy-prover.dev + - name: Add playground run: | - mkdir -p src - if [ ! -f src/index.md ] && [ -f README.md ]; then - cp README.md src/index.md - elif [ ! -f src/index.md ]; then - echo "# ${GITHUB_REPOSITORY}" > src/index.md - fi - ./.ddraig-ssg/build/exec/ddraig build src _site https://hyperpolymath.github.io/${GITHUB_REPOSITORY#*/} + mkdir -p _site/playground + cp echidna-playground/index.html echidna-playground/styles.css _site/playground/ - name: Upload artifact uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 with: diff --git a/deno.lock b/deno.lock index ccc0e2ce..77b75dbe 100644 --- a/deno.lock +++ b/deno.lock @@ -1,4 +1,11 @@ { - "version": "4", - "remote": {} + "version": "5", + "specifiers": { + "jsr:@std/yaml@*": "1.1.2" + }, + "jsr": { + "@std/yaml@1.1.2": { + "integrity": "de612653c036749ba2044165e316f52412b0f0698afffb7ee80b5331d6d2abae" + } + } } diff --git a/echidna-playground/deno.json b/echidna-playground/deno.json index c9f1c3f2..5cc9a154 100644 --- a/echidna-playground/deno.json +++ b/echidna-playground/deno.json @@ -4,8 +4,8 @@ "tasks": { "build:res": "deno run -A --node-modules-dir=auto npm:rescript build", "clean:res": "deno run -A --node-modules-dir=auto npm:rescript clean", - "dev": "deno run --allow-net --allow-read server.ts", - "serve": "deno run --allow-net --allow-read server.ts", + "dev": "deno run --allow-net --allow-read jsr:@std/http@^1.0.0/file-server .", + "serve": "deno run --allow-net --allow-read jsr:@std/http@^1.0.0/file-server .", "res:build": "deno run -A --node-modules-dir=auto npm:rescript build", "res:clean": "deno run -A --node-modules-dir=auto npm:rescript clean", "res:watch": "deno run -A --node-modules-dir=auto npm:rescript build -w" diff --git a/echidna-playground/index.html b/echidna-playground/index.html index 14114068..8822aa23 100644 --- a/echidna-playground/index.html +++ b/echidna-playground/index.html @@ -3,37 +3,39 @@
- -- Welcome to the jsCoq technology demo! - jsCoq is an interactive, - web-based environment for the Coq Theorem prover, and is a collaborative - development effort. See the list of contributors - below. + This page embeds jsCoq, an + interactive, web-based environment for the Coq theorem prover. + All the Coq code below is editable and runs directly in your + browser — no installation required. Once + jsCoq finishes loading, step + through the proof and watch the intermediate proof states in the + right-hand panel.
- jsCoq is open source. If you find any problem or want to make - any contribution, you are extremely welcome! We await your - feedback at GitHub - and Gitter. + jsCoq is open source — feedback + and contributions are welcome at + GitHub. The wider + ECHIDNA platform, which orchestrates Coq alongside many other + provers, lives at + github.com/hyperpolymath/echidna.
- The following document contains embedded Coq code. - All the code is editable and can be run directly on the page. - Once jsCoq finishes loading, you are - free to experiment by stepping through the proof and viewing intermediate - proof states on the right panel. -
| Button | Key binding | Action | Toggles the goal panel. |
|---|
- The scratchpad offers simple, local - storage functionality. - Please go to CollaCoq if - you want to share your developments with other users. -
-- We don't provide a Coq tutorial (yet), but as a showcase, we - display a proof of the infinitude of primes in Coq. The proof relies - in the Mathematical Components library by the - MSR/Inria team led - by Georges Gonthier, so our first step will be to load it and - set a few Coq options: -
-
- Once the basic environment has been set up, we can proceed to
- the proof:
+ As a showcase, we prove a small but genuine theorem about the
+ natural numbers: adding zero on the right leaves a number
+ unchanged. In Coq, nat is defined inductively —
+ a natural number is either 0 or the successor
+ S n of a natural number — and +
+ recurses on its first argument. That makes
+ 0 + n = n true by computation, but
+ n + 0 = n requires a proof by induction.
The dev team
+The jsCoq dev team