ecavallo/ptt 18
Experimental typechecker for internally parametric type theory
jonsterling/agdazippermachine 14
An abstract machine using indexed containers and their zippers
jonsterling/agdabrouwerianmathematics 9
some "modernized" brouwerian mathematics, inspired by Hancock, Ghani & Pattinson
jonsterling/agdaeffectfulforcing 9
Constructive and formal proof of Brouwer's Bar Theorem & Monotone Bar Induction Principle for System Tdefinable functionals.
An implementation of System F, as described in PFPL.
Tactics in the macro expander
dlicata335/cubicalexperiments 7
HoTT MRC Cubical experiments group
Abstract binding trees in Agda
startedtomdjong/domaintheoryinuf
started time in 13 hours
push eventjonsterling/HoTTIntro
commit sha 41cbe32a4e2425e8c7555f08d48a7577f9ab3366
Fix typos in README
commit sha 2e58ed524b38eac85a80355069b6d81bb960bd06
Fix typos in Groups chapter  write "precategory" with hyphen after the prefix as in the definition  place comma efter "i.e." as in the rest of the chapter
commit sha 05ccc220a7ef751e92c579c1df62850c5a8d43ca
Fix crossreference to propositional truncations axiom
commit sha e6b7d22badd624679c5b35e0951a51b022348f81
Merge pull request #5 from bafain/patch1 Fix typos and add crossreference
commit sha 4d39b471a7ab242f24cf0da735608e7839e39d44
isomorphic abelian groups are equal
commit sha 4693b7af193f03bdf79e287aefc99cb71c979d71
Merge branch 'master' of https://github.com/EgbertRijke/HoTTIntro
commit sha cf8e823cd109726366df91a9972def29891e2e6d
basic infrastructure rings
commit sha 8cc1478faa61ad755ac4bfdea550f494b783ca50
basic infrastructure rings
commit sha 6261841f0d005f77dd54ae02347d22a2292c015e
basic infrastructure of ring homomorphisms
commit sha 7bbd700dbf5d07444c0db904650ad1868e1ac255
characterized idtype of homRing
commit sha 4147b3bf45c7dbc9ca6ed83ec9e991328ee1a1ea
isomorphic rings are equal
commit sha 075ec7390f3b835fabb38cc3e90c8d2d354d3f76
subgroups
commit sha 1ce47185f622a745921abf2c755441ac4ebc3700
subgroups
commit sha b492a067102b80db3933436e84237398f560dffa
subgroups and ideals
commit sha e83de746ba6fb04f86c579359a20555f537e5572
cosets
commit sha a249ad78c9c341350787c5d324eb6ca4c5c30216
coset relations are propvalued
commit sha fa1526ba43afedc529b4bddaedc7885ef322d5fb
moving files around
commit sha 71dcf8c1205c004245c8442d8829d4306023e5a8
universal property of set quotients
commit sha 2072a56dbbcbd4d31da029ff1771440f28d06355
universal property of the image
commit sha 7a7d2869390453875fe9cf47d446971ef44d4c9d
working on group structure on Fin n
push time in 4 days
push eventjonsterling/bibtexreferences
commit sha e9b563f52afad4183c4de642370e8d109948bb2c
crary:2020
push time in 5 days
push eventjonsterling/bibtexreferences
commit sha b4d039349f6cfc8ea46e82050582f3181146ae61
ocaml
push time in 5 days
push eventRedPRL/cooltt
commit sha 1a9f2fae1287470c707339b25925624224a5a2eb
public/prviate
push time in 5 days
push eventRedPRL/cooltt
commit sha f25cd9e5543be3eac510b218296d65d7a039d410
cleanup
push time in 5 days
push eventRedPRL/cooltt
commit sha 583b89ce8b12e7c72712e3d48d5acb7275e61e12
types
commit sha b89bc7de2ebb3609c3df99905ad9d3e08889091a
remove yuujinchou dependency for now
push time in 5 days
push eventRedPRL/cooltt
commit sha 15758aff87a4ba44825cd981194fbc5e5ff89e6e
remove dead code
push time in 5 days
push eventRedPRL/cooltt
commit sha 1d666e3016adf3d8b8637d8a642c9aab4e0425a9
starting to resolve my misunderstandings
push time in 5 days
push eventRedPRL/cooltt
commit sha 39d0e0690b97a31322596d00c08fb9384a3eb8e0
serialization of types
push time in 5 days
push eventRedPRL/cooltt
commit sha 8b7f2f08df0bce8ce6c3a2ff76b623bddbd8bf54
whitespace
push time in 5 days
push eventRedPRL/cooltt
commit sha 07350c6fb31ec5fd2c42bf9a5a1f6670080823dd
attrs?
push time in 5 days
push eventRedPRL/cooltt
commit sha 991b91fa669628c2cbd89b0ddcf582ee0e1b6117
use Set
push time in 5 days
push eventRedPRL/cooltt
commit sha d599fe60260df62f1d66bbd4ad72decd3c9f418a
not lossy
push time in 5 days
push eventRedPRL/cooltt
commit sha 340046dfb9f0ae93d8129a933665b1a93d7da68c
support reverse direction of resolver (currently lossy)
push time in 5 days
push eventRedPRL/cooltt
commit sha fa4543f1195ee7e7241c9be78944ae1bef7a444a
fix opam
commit sha f972c223f742528ae1e4a3192ad1b34dcda3dd16
fix opam
push time in 5 days
push eventRedPRL/cooltt
commit sha db83e1955a170b2afad63bfbd4874528052db2df
remove confusing "problem" stack
push time in 5 days
PR opened RedPRL/cooltt
pr created time in 5 days
push eventRedPRL/cooltt
commit sha 8a43a4b4b7dd59b001dcf1dd0de5e9e38cec0df5
more hlevel additions (#168) * more hlevel additions * simplify propset Coauthoredby: Jonathan Sterling <jonsterling@users.noreply.github.com>
push time in 5 days
PR merged RedPRL/cooltt
Ok, I have no idea if this is idiomatic or even correct but it does seem to typecheck :)
pr closed time in 5 days
push eventclayrat/cooltt
commit sha 9f312f3f453ecd03c9ad0fa463cc22e6345b37ee
[Refactoring] turning the frontend into a separate library (#169) * first attempt at moving things over to a frontend library * tweak * more a few things * rename folder lib => core * remove spurious references to CS * cleanup * move some tactics out of the refiner * remove ConcreteSyntax reference from the refiner * renaming ElabError => RefineError * disentangle refiner errors from elaborator errors * move concrete syntax to frontend * rename ElabEnv/ElabState => RefineEnv/RefineState * ElabM => RefineM * ElabBasics => RefineMonad
commit sha 6f20e644b7686a2dcd93794cf10a5d4a449e0c54
Grammar hack for projectors (#170) "snd x y" is now parsed as "{snd x} y"
commit sha fe147a02975e71bc256e1047579012523b4b89a1
Put the 🧞♂️ back in the bottle (#171) * Revert "Grammar hack for projectors (#170)" This reverts commit 6f20e644b7686a2dcd93794cf10a5d4a449e0c54. * this was the change I wanted LOL
commit sha da1511514226f99ae68d7afe749cf4fe6dd647c3
Merge branch 'master' into master
push time in 5 days
Pull request review commentRedPRL/cooltt
def trans (A : type) (p : 𝕀 → A) (q : (i : 𝕀) → sub A {i=0} {p 1}) : p def contrprop (A : type) (A/contr : iscontr A) : isprop A = a a' => trans A {symm A {{snd A/contr} a}} {{snd A/contr} a'}++def propset (A : type) (A/prop : isprop A) : isset A =+ a b p q i j => hcom A 0 1 {∂ i ∨ ∂ j} {k _ =>+ [ k=0 ∨ j=0 => A/prop a {p j} k+  j=1 => A/prop a {p j} k+  i=0 => A/prop a {p j} k+  i=1 => A/prop a {q j} k+ ]+ }++def raisehlevel : (l : nat) (A : type) → hashlevel l A → hashlevel {suc l} A =+ let aux : (m : nat) → (B : type) → hashlevel {suc m} B → hashlevel {suc {suc m}} B =+ elim [+  zero => propset+  suc {l => ih} => B B/lvl b b' => ih {path B b b'} {B/lvl b b'}+ ]+ in+ elim [+  zero => contrprop+  suc l => aux l+ ]++def prophlevel : (l : nat) (A : type) → isprop A → hashlevel {suc l} A =+ elim [+  zero => _ A/prop => A/prop+  suc {l => ih} => A A/prop => raisehlevel {suc l} A {ih A A/prop}+ ]++def pathhlevel : (l : nat) (A : type) (A/level : hashlevel {suc l} A) (a : A) (a' : A)+ → hashlevel l {path A a a'} =+ elim [+  zero => A A/prop a a' => [A/prop a a', p => propset A A/prop a a' {A/prop a a'} p]+  suc l => A A/lvl a a' => A/lvl a a'+ ]++def path/based/contr (A : type) (a : A) : iscontr {(x : A) × path A a x} =+ [ [a, i => a]+ , x i =>+ let aux : 𝕀 → A = j =>+ hcom A 0 j {∂ i} {k _ =>+ [ k=0 ∨ i=0 => a+  i=1 => {snd x} k
@clayrat Yes that is correct, sorry about that  I had some kind of Brain Malfunction last night when I agreed to the other proposal lol.
comment created time in 5 days
push eventRedPRL/cooltt
commit sha fe147a02975e71bc256e1047579012523b4b89a1
Put the 🧞♂️ back in the bottle (#171) * Revert "Grammar hack for projectors (#170)" This reverts commit 6f20e644b7686a2dcd93794cf10a5d4a449e0c54. * this was the change I wanted LOL
push time in 5 days
Pull request review commentRedPRL/cooltt
def trans (A : type) (p : 𝕀 → A) (q : (i : 𝕀) → sub A {i=0} {p 1}) : p def contrprop (A : type) (A/contr : iscontr A) : isprop A = a a' => trans A {symm A {{snd A/contr} a}} {{snd A/contr} a'}++def propset (A : type) (A/prop : isprop A) : isset A =+ a b p q i j => hcom A 0 1 {∂ i ∨ ∂ j} {k _ =>+ [ k=0 ∨ j=0 => A/prop a {p j} k+  j=1 => A/prop a {p j} k+  i=0 => A/prop a {p j} k+  i=1 => A/prop a {q j} k+ ]+ }++def raisehlevel : (l : nat) (A : type) → hashlevel l A → hashlevel {suc l} A =+ let aux : (m : nat) → (B : type) → hashlevel {suc m} B → hashlevel {suc {suc m}} B =+ elim [+  zero => propset+  suc {l => ih} => B B/lvl b b' => ih {path B b b'} {B/lvl b b'}+ ]+ in+ elim [+  zero => contrprop+  suc l => aux l+ ]++def prophlevel : (l : nat) (A : type) → isprop A → hashlevel {suc l} A =+ elim [+  zero => _ A/prop => A/prop+  suc {l => ih} => A A/prop => raisehlevel {suc l} A {ih A A/prop}+ ]++def pathhlevel : (l : nat) (A : type) (A/level : hashlevel {suc l} A) (a : A) (a' : A)+ → hashlevel l {path A a a'} =+ elim [+  zero => A A/prop a a' => [A/prop a a', p => propset A A/prop a a' {A/prop a a'} p]+  suc l => A A/lvl a a' => A/lvl a a'+ ]++def path/based/contr (A : type) (a : A) : iscontr {(x : A) × path A a x} =+ [ [a, i => a]+ , x i =>+ let aux : 𝕀 → A = j =>+ hcom A 0 j {∂ i} {k _ =>+ [ k=0 ∨ i=0 => a+  i=1 => {snd x} k
OK, I have a new PR that makes the change I actually wanted: https://github.com/RedPRL/cooltt/pull/171
Sorry for misreading the thread and giving the impression that I wanted this crazy fst x y z
to work lol. I just wanted fst x y
to not be parsed as fst {x y}
.
comment created time in 6 days
push eventRedPRL/cooltt
commit sha fad35c4bbcd5455026567c329d9a47f2f5383c36
this was the change I wanted LOL
push time in 6 days
pull request commentRedPRL/cooltt
Put the genie back in the bottle
🧞♂️ ⬇️ 🍼
comment created time in 6 days
Pull request review commentRedPRL/cooltt
def trans (A : type) (p : 𝕀 → A) (q : (i : 𝕀) → sub A {i=0} {p 1}) : p def contrprop (A : type) (A/contr : iscontr A) : isprop A = a a' => trans A {symm A {{snd A/contr} a}} {{snd A/contr} a'}++def propset (A : type) (A/prop : isprop A) : isset A =+ a b p q i j => hcom A 0 1 {∂ i ∨ ∂ j} {k _ =>+ [ k=0 ∨ j=0 => A/prop a {p j} k
Open to suggestions 😉
comment created time in 6 days
Pull request review commentRedPRL/cooltt
def trans (A : type) (p : 𝕀 → A) (q : (i : 𝕀) → sub A {i=0} {p 1}) : p def contrprop (A : type) (A/contr : iscontr A) : isprop A = a a' => trans A {symm A {{snd A/contr} a}} {{snd A/contr} a'}++def propset (A : type) (A/prop : isprop A) : isset A =+ a b p q i j => hcom A 0 1 {∂ i ∨ ∂ j} {k _ =>+ [ k=0 ∨ j=0 => A/prop a {p j} k
This system can be simplified by consolidating the first three clauses under k=0 ∨ ∂ j ∨ i=0
.
comment created time in 6 days
push eventRedPRL/cooltt
commit sha 9f312f3f453ecd03c9ad0fa463cc22e6345b37ee
[Refactoring] turning the frontend into a separate library (#169) * first attempt at moving things over to a frontend library * tweak * more a few things * rename folder lib => core * remove spurious references to CS * cleanup * move some tactics out of the refiner * remove ConcreteSyntax reference from the refiner * renaming ElabError => RefineError * disentangle refiner errors from elaborator errors * move concrete syntax to frontend * rename ElabEnv/ElabState => RefineEnv/RefineState * ElabM => RefineM * ElabBasics => RefineMonad
push time in 6 days
PR merged RedPRL/cooltt
Resolves #160
 [x] extricate concrete syntax from the core
 [x] have a distinct
ElabError
in the frontend,  [x] don't refer to
CS.pat
 [x] have a distinct
pr closed time in 6 days
issue closedRedPRL/cooltt
Factor out the frontend into a (local) library
Would be nice for cleanup purposes and for facilitating documentation!
closed time in 6 days
jonsterlingissue commentRedPRL/cooltt
Hahahahaha :) I liked that notation but everyone revolted against me in such braindamaged ways, I am hesitant to reintroduce it. lol
On Jun 30, 2020, at 9:16 PM, favonia notifications@github.com wrote:
We could reintroduce the .fst postfix notation from a project long time ago. ;)
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RedPRL/cooltt/issues/69#issuecomment652129974, or unsubscribe https://github.com/notifications/unsubscribeauth/AAANOELPOD2247ZQ5BKESRDRZKE5XANCNFSM4M4PYOKQ.
comment created time in 6 days
issue commentRedPRL/cooltt
OK lmao, my new specification is "It should work like Agda" lmao. 😉 I think I don't want to answer your specific questions, because there is a very clear "obviously correct" grammar, and I feel that I will be easily trapped by answering specific questions wrongly (be careful what I wish for!) when the 🧞 can guess what I mean 🤣
comment created time in 6 days
issue commentRedPRL/cooltt
@favonia My specification is "fst should be like any function".
comment created time in 6 days
push eventRedPRL/cooltt
commit sha 4e71e0bb5552fb392f3791d881bc6c85dd6f2ab5
ElabM => RefineM
commit sha 07a831a28218254b6bf5bf099cd1d08a4923478b
ElabBasics => RefineMonad
push time in 6 days
push eventRedPRL/cooltt
commit sha ac41b1d6d06ef50acb3ea49524acb93acd4d6825
rename ElabEnv/ElabState => RefineEnv/RefineState
push time in 6 days
push eventRedPRL/cooltt
commit sha 1a758f5a7f742918964d76a28e3d2c3e8967a877
move concrete syntax to frontend
push time in 6 days
push eventRedPRL/cooltt
commit sha a6bc7d6c549bd5bc914ba397eb523a782581ddf6
renaming ElabError => RefineError
commit sha a038a46bbe9291ff5507e3f4f7d19a66f19fe73f
disentangle refiner errors from elaborator errors
push time in 6 days
push eventRedPRL/cooltt
commit sha 26f9e606f6b506680fc3c9c4be838070d451f935
remove ConcreteSyntax reference from the refiner
push time in 6 days
push eventRedPRL/cooltt
commit sha 4ad304e0c2573c97026615c8989cda0a3fa729db
move some tactics out of the refiner
push time in 6 days
push eventRedPRL/cooltt
commit sha e3c99e2e31804623fc0ccaa5b296b7dcff4ad461
remove spurious references to CS
commit sha 40a52223cf193452c3de76e0e78de0ed08fd6437
cleanup
push time in 6 days
Pull request review commentRedPRL/cooltt
def trans (A : type) (p : 𝕀 → A) (q : (i : 𝕀) → sub A {i=0} {p 1}) : p def contrprop (A : type) (A/contr : iscontr A) : isprop A = a a' => trans A {symm A {{snd A/contr} a}} {{snd A/contr} a'}++def propset (A : type) (A/prop : isprop A) : isset A =+ a b p q i j => hcom A 0 1 {∂ i ∨ ∂ j} {k _ =>+ [ k=0 ∨ j=0 => A/prop a {p j} k+  j=1 => A/prop a {p j} k+  i=0 => A/prop a {p j} k+  i=1 => A/prop a {q j} k+ ]+ }++def raisehlevel : (l : nat) (A : type) → hashlevel l A → hashlevel {suc l} A =+ let aux : (m : nat) → (B : type) → hashlevel {suc m} B → hashlevel {suc {suc m}} B =+ elim [+  zero => propset+  suc {l => ih} => B B/lvl b b' => ih {path B b b'} {B/lvl b b'}+ ]+ in+ elim [+  zero => contrprop+  suc l => aux l+ ]++def prophlevel : (l : nat) (A : type) → isprop A → hashlevel {suc l} A =+ elim [+  zero => _ A/prop => A/prop+  suc {l => ih} => A A/prop => raisehlevel {suc l} A {ih A A/prop}+ ]++def pathhlevel : (l : nat) (A : type) (A/level : hashlevel {suc l} A) (a : A) (a' : A)+ → hashlevel l {path A a a'} =+ elim [+  zero => A A/prop a a' => [A/prop a a', p => propset A A/prop a a' {A/prop a a'} p]+  suc l => A A/lvl a a' => A/lvl a a'+ ]++def path/based/contr (A : type) (a : A) : iscontr {(x : A) × path A a x} =+ [ [a, i => a]+ , x i =>+ let aux : 𝕀 → A = j =>+ hcom A 0 j {∂ i} {k _ =>+ [ k=0 ∨ i=0 => a+  i=1 => {snd x} k
sounds like a grammar bug!! 🧞♂️
comment created time in 7 days
push eventjonsterling/bibtexreferences
commit sha 52e074b3fda6552d2ca745b113927c2c140b0091
fix references
push time in 7 days
push eventRedPRL/cooltt
commit sha 7be1bb32f8b0eaae75c5a11f1c1c5b0ff1086c94
Better error messages (#166) * Passing along the last_token to PP * removed REPL warning * keep the original error formats * Refactored the Error Handling some to separate repl and complie errors * Forgot a newline * Forgot new files =) * Make Mesages more clear and remove separated Error Message system * Cleanly seperate the error message and output message types * Removed the wonky error messages. Leave Locaction messsages as they were * removed last_token garbage. :) * Moved the comments to the right spots * better use of modules * removed unused function Coauthoredby: Jonathan Sterling <jonsterling@users.noreply.github.com>
push time in 7 days
PR merged RedPRL/cooltt
I've been having some fun playing with cooltt. An annoyance I had is the opaque error message on parse error. So I added the next token to the LexingUtil. Because the span is used in the Grammar I needed to change the call to pp_span to take in a product type.
More controversially, if the output of cooltt is going to be used by another program, the INFO line numbers are a bit of a problem so I suppressed them in pp_message.
My OCaml is meh so happy to adjust this pull request to however you'd prefer it.
pr closed time in 7 days
push eventEntropyFails/cooltt
commit sha 92aa1faf58ee47caaebdbedfb6b11114508af8e2
hlevel additions (#167)
commit sha 2e9fd74588725b3903d312d5e8ce08d38c01382c
Merge branch 'master' into better_error_messages
push time in 7 days
Pull request review commentRedPRL/cooltt
+(* Driver Messages come in 2 types, either an error message or a normalized term/Definition*)
I like the new design of this module!
comment created time in 7 days
push eventRedPRL/cooltt
commit sha 92aa1faf58ee47caaebdbedfb6b11114508af8e2
hlevel additions (#167)
push time in 10 days
PR merged RedPRL/cooltt
I've tried proving propset
but couldn't figure it out for now :)
pr closed time in 10 days
pull request commentRedPRL/cooltt
OK! Thanks @clayrat for the contribution, I'll merge this now. And good to "see" you again!
comment created time in 10 days
pull request commentRedPRL/cooltt
So, this is looking a lot better! There are still some aspects that I am finding confusing at the moment; the part I'm still getting stuck on is there is a type called error
that contains nonerror things (by virtue of containing DriverMessage.message
), and consequently, the function pp_error_message
is therefore also seeming to be printing nonerror things. Maybe the right question for me to ask is: perhaps the errors (like ParseError
etc.) should not be part of DriverMessage.message
and some types should be peeled apart?
I am also finding the distribution of the spans and the lasttokens to be a little confusing; there is some semisubtle layering going on in the architecture and I could use a highlevel gloss of the motivations.
Thanks again!
comment created time in 10 days
Pull request review commentRedPRL/cooltt
open Basis type level = [`Info  `Error  `Warn] type location = LexingUtil.span option+type location = DriverError.error_with_maybe_span option
This interface is kind of strange, because pp_message
is now taking an error, but pp_message
isn't always about errors... Perhaps I am getting hung up on the names of things.
Perhaps it would be helpful if you could think a bit about how you want all this stuff to work, and then summarize the interface you favor?
comment created time in 11 days
Pull request review commentRedPRL/cooltt
++type error_with_maybe_span = ErrorWithMaybeSpan of DriverMessage.message * Basis.LexingUtil.span option
I think we can make this a little more idiomatic, like:
type error = {message : DriverMessage.message; span : Basis.LexingUtil.span option}
comment created time in 11 days
Pull request review commentRedPRL/cooltt
type error = LexingError of Basis.LexingUtil.span  ParseError of Basis.LexingUtil.span+type error = LexingError of Basis.LexingUtil.span * string  ParseError of Basis.LexingUtil.span * string
I suggest changing this to be an inline record so that the intention of the string
thing is clear from the interface. We could write something like:
type error =
 LexingError of {span : ...; last_token : string}
 ...
comment created time in 11 days
Pull request review commentfavonia/bantorra
+open File++(** The scheme refers to how the default directory should be determined+ when XDG_CONFIG_HOME or XDG_CACHE_HOME is missing.++ It does not correspond to the actual OS that is running. For example, the+ [Linux] scheme covers all BSDlike systems and Cygwin on Windows. *)+type scheme = MacOS  Linux  Windows++let uname_s =+ lazy begin+ try+ let ic = Unix.open_process_args_in "uname" ["s"] in+ try+ let res = String.trim @@ input_line ic in+ close_in_noerr ic;+ Some res+ with+  _ >+ close_in_noerr ic;+ None+ with+  _ >+ None+ end++let guess_scheme =+ lazy begin+ match Sys.os_type with+  "Unix" >+ begin+ match Lazy.force uname_s with+  Some "Darwin" > MacOS+  _ > Linux+ end+  "Cygwin" > Linux+  "Win32" > Windows+  _ > Linux+ end++(* XXX I did not test the following code on different platforms. *)+let get_config_home ~app_name =+ match Sys.getenv_opt "XDG_CONFIG_HOME" with+  Some dir > dir/app_name+  None >+ match Lazy.force guess_scheme with+  Linux >+ Sys.getenv "HOME"/".config"/app_name+  MacOS >
btw... developers who use macos generally prefer to put their configuration files in the linux style, even though the application support is used by most applications. that’s because most of our tools are coming from linux at first.
but i guess it’s fine to support this scheme.
comment created time in 12 days
push eventjonsterling/latex3jmsdelim
commit sha 377623bcbcfd3f2612c39adef63edf745187368d
Create FUNDING.yml
push time in 13 days
push eventjonsterling/lecturenotes
commit sha 4f2fead42433d1472c7d56f302bb02b94861f461
Create FUNDING.yml
push time in 13 days
pull request commentRedPRL/cooltt
I will rereview this hopefully today, thank you again for your contribution! We are very excited to see some outside interest, and would be happy to discuss ways to further involve you in the project if you have interest.
comment created time in 13 days
push eventjonsterling/bibtexreferences
commit sha 48a33fce72d248fceeb8ba75e11640aada6f3cd3
add missing date
push time in 14 days
push eventjonsterling/bibtexreferences
commit sha d16a5b5e9a951ab12ce190460b355d0988f512e7
fix lol
push time in 14 days
push eventjonsterling/bibtexreferences
commit sha f52419a6973c8061a0e2081c0339d40e245a92ff
cite foxnet
push time in 14 days
push eventjonsterling/bibtexreferences
commit sha 7ec3251706a4af152246baef4a5df2ec2ed95c01
cooltt
push time in 14 days
push eventjonsterling/bibtexreferences
commit sha 1745de3e78c057f3160dcbc9477bc55df748cb41
SML stuff
push time in 14 days
push eventjonsterling/bibtexreferences
commit sha 3cd932dc3c582788d6078100173f863c903bc861
the essence of ML
push time in 14 days
Pull request review commentRedPRL/cooltt
let pp_lvl fmt =  `Warn > Format.fprintf fmt "Warn" let pp_message ~loc ~lvl pp data =+let pp_message ~loc ~lvl ~last_token pp data = match loc with  None > pp Format.std_formatter data  Some span > Format.printf "@[<v>%a [%a]:@, @[<v>%a@]@]@.@." LexingUtil.pp_span span pp_lvl lvl pp data+ match lvl with+  `Info >+ Format.printf "@[<v>%a@]@."
I would prefer to keep the level and span, because it is part of the protocol that allows cooltt to be used in our editor mode; the purpose is to display an indicator near where the information emanated.
comment created time in 14 days
Pull request review commentRedPRL/cooltt
type span = {start : Lexing.position; stop : Lexing.position} let pp_span : span Pp.printer = fun fmt span > Format.fprintf fmt "%a:%i.%i%i.%i"+let pp_span : (span * string) Pp.printer =+ fun fmt (span,last_token) >+ Format.fprintf fmt "%a:%i.%i%i.%i near %s"
Perhaps the last token should not be printed with the span, but instead should be part of the ParseError
message etc. Then, the span output protocol can remain the same, but we can report "There was a parsing error near [token]" or something.
comment created time in 14 days
startedocurrent/ocamlci
started time in 15 days
push eventjonsterling/bibtexreferences
commit sha 4282b17c3c5a3657a06f8b4b55a19be8d6abfbd1
factor out popl:1986
push time in 16 days
startedagda/guarded
started time in 18 days
issue commentRedPRL/redprl.github.io
Possible screenshot redo: Vim's :TOhtml
that would be sick!!!
comment created time in 19 days
push eventjonsterling/bibtexreferences
commit sha f4db1f29bae2f0680b441fdfe3059bc7245cd02f
add macqueen 1986
push time in 19 days
push eventRedPRL/redprl.github.io
commit sha 562d9db7eaf79e15df1815c223ccf6abf7be20c6
tweak
push time in 19 days
push eventRedPRL/redprl.github.io
commit sha 22289e8bb4014b5bea7280521797d409c7e9b665
tweak
push time in 19 days
push eventRedPRL/redprl.github.io
commit sha 711e15b2ed1f25eb161c8e2c9c688e213d01ff94
fix messed up bullets
commit sha cb3ac396aae92125b663f3771545eb4543e77361
add links to some publications and talks
commit sha 09ae863480968567c4ec71ca40fe221038b1334d
more
commit sha e3675d34603989d6c7ccbd640d03a3881376c1db
update the svg color
commit sha 0f478208c3cbace24d3196ba6789f298fe9d0e7f
improve responsive layout of pills at the top
commit sha 23f412ca8dd385a9ca88f4822f2fbed53768c9b3
slightly decrease font size and wrapper width
commit sha b27b6edcc6e09808bb089e51a079852cb535abf4
tighten up layout
commit sha 0b97992522e517f2936731a3e002a5b399e5e217
fix a title
commit sha de829ac80c4c9ef4f45228217c9c57d943868f02
fix order of link
commit sha 0461abd47963ef05e74951a6b9e14b24339d1b43
Merge pull request #4 from RedPRL/links Add some links
push time in 19 days
PR merged RedPRL/redprl.github.io
This adds some links to relevant talks and papers. Please feel free to adjust as you please.
I also fixed the bullets.
pr closed time in 19 days
push eventRedPRL/redprl.github.io
commit sha de829ac80c4c9ef4f45228217c9c57d943868f02
fix order of link
push time in 19 days
issue closedRedPRL/redtt
[Cubical] exact equality types
Let me begin to write down a story about exact equality, so that we don't lose sight of what an important aspect it is of our perspective on type theory. First I want to disentangle some things which are not the same:
 Exact equality
 Equality types whose coercions leave no trace in the terms.
To explain this, I must fix some definitions. By "exact equality" I mean any kind of equality that has enough characteristics to be used as mathematical equality, including at least the following:
 it must satisfy all the extensionality conditions (in particular, funext)
 if
P, Q : Eq(A, M, N)
then we must haveR : Eq(Eq(A,M,N), P, Q)
(analogous to the K rule)  coercion along reflexivity must be definitionally the identity (analogous to the J rule).
Beyond this, it is a matter of negotiation (an implementation detail!) whether the coercions leave a trace in the terms: in RedPRL we tried out a version where they leave no trace, and while this has some advantages to be sure, we have learned that the disadvantages are so brutal that we had trouble getting off the ground.
A version of type theory with equality types in which coercion leaves a trace in the terms can still work fine for developing mathematicsso long as conditions (1,2, 3) above hold. There is no loss of expressivity (in fact, there are conservativity results which prove this mathematically for multiple type theories), and as far as usability is concerned, our experience with doing a lot of formalization work suggests that the explicit style is vastly more usable, contrary to our initial expectations. The thing that makes equality in (e.g.) Coq very hard to use is not that the coercions leave a trace, but rather (1) coq's "equality" type does not satisfy my first principle, and (2) its homogeneous nature does not play will with dependent types.
We want to develop a prooftheoretic notion of equality which has the properties (13) above.
One way to do this offtheshelf is to use a version of Observational Type Theory. The great shame about OTT was that the papers about it were so difficult to read and understand that it gave the impression of being much more complicated than it really was. The idea was actually extremely simple, and had two parts:

Use heterogeneous equality instead of homogeneous equality. This is because the latter is notoriously difficult to use with dependent types: a perfected way to get owned is to try and work with equality of sigma types in Coq. It's horrific!

Have the meaning of an equation
M : A == N : B
be defined not uniformly, but rather by case on the typesA,B
. That is, the correct notion of equality is chosen at each type, really just the same as in the Nuprl semantics. For instance, function types get extensional equality, etc.
Beyond this, there were some technical details about how to achieve stronger and stronger definitional equivalence for coercions and neutral terms etc. Sadly these parts were not explained very well, but suffice it to say that it all makes sense and is highly relevant.
I would like to consider another idea, which is to use cubes to give a syntax or proof theory for exact equality. Cubes are naturally heterogeneous, and the meaning of equations is given directly in terms of the meaning of the types that the equations are at. So, OTT aspects (1,2) are achieved immediately without any special consideration.
OTT also satisfied definitional proof irrelevance for proofs of equality: that is, any two proofs P, Q of the same equation were actually definitionally equal. As far as I can tell, this will not work in a cubical version, but I am not completely certain. It at least seems unlikely to be possible to satisfy.
I am not yet certain whether condition (3), the unicity of equality proofs, is possible to realize in the cubical setting either. I believe it is possible in case at least one face of the "equality cube" is specified, but we need to see.
My opinion is that exact equality is of the essence for us, and we should make sure that we retain that aspect by hook or by crook. The exact way that we do it is negotiable: I would like to find a new and interesting treatment based on cubes, since somehow this seems like the "right" idea, but in the worst case scenario (if we're unable to make an idea of that kind work), we can do a LOT worse than just adopting OTT directly, which is simple both in its concept and in its use.
closed time in 19 days
jonsterlingpush eventRedPRL/redprl.github.io
commit sha 0b97992522e517f2936731a3e002a5b399e5e217
fix a title
push time in 19 days
push eventRedPRL/redprl.github.io
commit sha b27b6edcc6e09808bb089e51a079852cb535abf4
tighten up layout
push time in 19 days
push eventRedPRL/redprl.github.io
commit sha 0f478208c3cbace24d3196ba6789f298fe9d0e7f
improve responsive layout of pills at the top
commit sha 23f412ca8dd385a9ca88f4822f2fbed53768c9b3
slightly decrease font size and wrapper width
push time in 19 days
push eventRedPRL/redprl.github.io
commit sha e3675d34603989d6c7ccbd640d03a3881376c1db
update the svg color
push time in 19 days
push eventRedPRL/redprl.github.io
commit sha 09ae863480968567c4ec71ca40fe221038b1334d
more
push time in 19 days
pull request commentRedPRL/redprl.github.io
I also want to add Favonia's talks.
comment created time in 19 days
PR opened RedPRL/redprl.github.io
This adds some links to relevant talks and papers. Please feel free to adjust as you please.
I also fixed the bullets.
pr created time in 19 days