diff options
-rw-r--r-- | Makefile | 12 | ||||
-rwxr-xr-x | configure | 50 | ||||
-rw-r--r-- | ide/.coqide-gtk2rc | 6 | ||||
-rw-r--r-- | ide/FAQ | 8 | ||||
-rw-r--r-- | ide/preferences.ml | 4 | ||||
-rw-r--r-- | ide/utf8.v | 54 |
6 files changed, 84 insertions, 50 deletions
@@ -409,12 +409,12 @@ beforedepend:: ide/utf8_convert.ml FULLIDELIB=$(FULLCOQLIB)/ide -OLDCOQIDEVO=ide/utf8.vo +COQIDEVO=ide/utf8.vo -$(OLDCOQIDEVO): states/initial.coq states7/initial.coq - $(BOOTCOQTOP) $(TRANSLATE) -compile $* +$(COQIDEVO): states/initial.coq + $(BOOTCOQTOP) -compile $* -IDEFILES=$(OLDCOQIDEVO) ide/coq.png ide/.coqide-gtk2rc ide/FAQ +IDEFILES=$(COQIDEVO) ide/utf8.v ide/coq.png ide/.coqide-gtk2rc coqide: $(IDEFILES) coqide-$(HASCOQIDE) coqide-no: @@ -424,7 +424,7 @@ coqide-opt: $(COQIDEBYTE) $(COQIDEOPT) $(COQIDE) ide: coqide-$(HASCOQIDE) states clean-ide: - rm -f $(OLDCOQIDEVO) $(COQIDECMO) $(COQIDECMX) $(COQIDECMO:.cmo=.cmi) $(COQIDEBYTE) $(COQIDEOPT) + rm -f $(COQIDEVO) $(COQIDECMO) $(COQIDECMX) $(COQIDECMO:.cmo=.cmi) $(COQIDEBYTE) $(COQIDEOPT) $(COQIDEOPT): $(COQMKTOP) $(CMX) $(USERTACCMX) ide.cmxa $(SHOW)'COQMKTOP -o $@' @@ -466,7 +466,7 @@ clean:: rm -f ide/extract_index.ml ide/find_phrase.ml ide/highlight.ml rm -f ide/config_lexer.ml ide/config_parser.mli ide/config_parser.ml rm -f ide/utf8_convert.ml - rm -f $(OLDCOQIDEVO) $(COQIDECMO) $(COQIDECMX) $(COQIDECMO:.cmo=.cmi) + rm -f $(COQIDEVO) $(COQIDECMO) $(COQIDECMX) $(COQIDECMO:.cmo=.cmi) rm -f $(COQIDEBYTE) $(COQIDEOPT) # coqc @@ -302,32 +302,39 @@ fi # For coqmktop -CAMLLIB=`"$CAMLC" -v | sed -n -e 's|.*directory:* *\(.*\)$|\1|p' ` +#CAMLLIB=`"$CAMLC" -v | sed -n -e 's|.*directory:* *\(.*\)$|\1|p' ` +CAMLLIB=`"$CAMLC" -where` # Camlp4 (greatly simplified since merged with ocaml) CAMLP4BIN=${CAMLBIN} -case $OS in - Win32) - CAMLP4LIB=+camlp4;; - *) - CAMLP4LIB=${CAMLLIB}/camlp4 -esac +#case $OS in +# Win32) + CAMLP4LIB=+camlp4 +# ;; +# *) +# CAMLP4LIB=${CAMLLIB}/camlp4 +#esac # lablgtk2 and CoqIDE if [ "$coqide_spec" = "no" ] ; then -if test -x ${CAMLLIB}/lablgtk2; then - if grep -q -w convert_with_fallback ${CAMLLIB}/lablgtk2/glib.mli; then - COQIDE=byte - # native threads - if test -f ${CAMLLIB}/threads/threads.cmxa; then +if test -x "${CAMLLIB}/lablgtk2" ; then + if grep -q -w convert_with_fallback "${CAMLLIB}/lablgtk2/glib.mli" ; then + if test -f "${CAMLLIB}/threads/threads.cmxa" ; then + echo "LablGtk2 found, native threads: native CoqIde will be available" COQIDE=opt; + else + echo "LablGtk2 found, no native threads: bytecode CoqIde will be available" + COQIDE=byte fi; - else COQIDE=no; + else + echo "LablGtk2 found but too old: CoqIde will not be available" + COQIDE=no; fi else + echo "LablGtk2 not found: CoqIde will not be available" COQIDE=no fi fi @@ -340,7 +347,8 @@ rm config/giveostype case $ARCH in win32) - STRIPCOMMAND="true";; + # true -> strip : it exists under cygwin ! + STRIPCOMMAND="strip";; *) if [ "$coq_profile_flag" = "-p" ] ; then STRIPCOMMAND="true" @@ -381,12 +389,12 @@ echo "" rm -f $COQTOP/config/Makefile -case $ARCH in - win32) - BINDIR=`echo $BINDIR |sed -e 's|\\\|/|g'` - LIBDIR=`echo $LIBDIR |sed -e 's|\\\|/|g'` - MANDIR=`echo $MANDIR |sed -e 's|\\\|/|g'`;; -esac +#case $ARCH in +# win32) +# BINDIR=`echo $BINDIR |sed -e 's|\\\|/|g'` +# LIBDIR=`echo $LIBDIR |sed -e 's|\\\|/|g'` +# MANDIR=`echo $MANDIR |sed -e 's|\\\|/|g'`;; +#esac sed -e "s|LOCALINSTALLATION|$local|" \ -e "s|COQTOPDIRECTORY|$COQTOP|" \ @@ -462,7 +470,7 @@ PRINTF=`which printf` # Subdirectories of theories/ added in coq_config.ml subdirs () { - (cd $1; find * -type d ! -name CVS -exec $PRINTF "\"%s\";\n" {} \; | grep -v extraction/test >> $mlconfig_file) + (cd $1; find * -type d ! -name CVS -exec $PRINTF "\"%s\";\n" {} \; | grep -v extraction/test | grep -v correctness >> $mlconfig_file) } echo "let theories_dirs = [" >> $mlconfig_file diff --git a/ide/.coqide-gtk2rc b/ide/.coqide-gtk2rc index 7a74a469d..11c53dad2 100644 --- a/ide/.coqide-gtk2rc +++ b/ide/.coqide-gtk2rc @@ -17,8 +17,8 @@ binding "text" { bind "<ctrl>w" { "cut-clipboard" () } # For UTF-8 inputs ! - bind "F11" {"insert-at-cursor" ("∀")} - bind "F12" {"insert-at-cursor" ("∃")} +# bind "F11" {"insert-at-cursor" ("∀")} +# bind "F12" {"insert-at-cursor" ("∃")} } class "GtkTextView" binding "text" @@ -36,7 +36,7 @@ widget "*.*.*.*.MessageWindow" style "views" gtk-font-name = "Sans 12" style "location" { -font_name = "Monospace 10" +font_name = "Sans 10" } widget "*location*" style "location" @@ -17,8 +17,8 @@ Q4) How to use those Forall and Exists pretty symbols? R4) Thanks to the Notation features in Coq, you just need to insert these lines in your Coq Buffer : ====================================================================== -Notation "∀ x : t | P" := (x:t)P (at level 1, x,t,P at level 10). -Notation "∃ x : t | P" := (EXT x:t|P) (at level 1, x,t,P at level 10). +Notation "∀ x : t, P" := (forall x:t, P) (at level 200, x ident). +Notation "∃ x : t, P" := (exists x:t, P) (at level 200, x ident). ====================================================================== Copy/Paste of these lines from this file will not work outside of CoqIde. You need to load a file containing these lines or to enter the "∀" @@ -58,9 +58,9 @@ R6) Use Q7) How to customize the shortcuts for menus? R7) Two solutions are offered: - Edit $HOME/.coqide.keys by hand or - - Add "gtk-can-change-accels = 1" in your .coqiderc.gtk2 file. Then + - Add "gtk-can-change-accels = 1" in your .coqide-gtk2rc file. Then from CoqIde, you may select a menu entry and press the desired - shortcut. Do not forget to save your preferences. + shortcut. Q8) What encoding should I use? What is this \x{iiii} in my file? R8) The encoding option is related to the way files are saved. diff --git a/ide/preferences.ml b/ide/preferences.ml index ad0c19743..309cc150e 100644 --- a/ide/preferences.ml +++ b/ide/preferences.ml @@ -130,7 +130,7 @@ let (current:pref ref) = cmd_browse = "netscape -remote \"OpenURL(", ")\""; cmd_editor = "emacs ", ""; - text_font = Pango.Font.from_string "Monospace 12"; + text_font = Pango.Font.from_string "sans 12"; doc_url = "http://coq.inria.fr/doc/"; library_url = "http://coq.inria.fr/library/"; @@ -294,7 +294,7 @@ let configure () = let box = GPack.hbox () in let w = GMisc.font_selection () in w#set_preview_text - "Lemma Truth: ∀ p:Prover, `p < Coq`. Proof. Auto with *. Save."; + "Goal (∃n : nat, n ≤ 0)∧(∀x,y,z, x∈y⋃z↔x∈y∨x∈z)."; box#pack w#coerce; ignore (w#misc#connect#realize ~callback:(fun () -> w#set_font_name diff --git a/ide/utf8.v b/ide/utf8.v index 98c2e9638..8428d2e3c 100644 --- a/ide/utf8.v +++ b/ide/utf8.v @@ -1,23 +1,49 @@ (* Logic *) -Notation "∀ x : t , P" := (x:t)P (at level 1, x,t,P at level 10). -Notation "∀ x y : t , P" := (x:t)(y:t)P (at level 1, x,y,t,P at level 10). -Notation "∀ x y z : t , P" := (x:t)(y:t)(z:t) P (at level 1, x,y,z,t,P at level 10). -Notation "∀ x y z u : t , P" := (x:t)(y:t)(z:t)(u:t)P (at level 1, x,y,z,u,t,P at level 10). +Notation "∀ x , P" := + (forall x , P) (at level 200, x ident) : type_scope. +Notation "∀ x y , P" := + (forall x y , P) (at level 200, x ident, y ident) : type_scope. +Notation "∀ x y z , P" := + (forall x y z , P) (at level 200, x ident, y ident, z ident) : type_scope. +Notation "∀ x y z u , P" := + (forall x y z u , P) (at level 200, x ident, y ident, z ident, u ident) : type_scope. +Notation "∀ x : t , P" := + (forall x : t , P) (at level 200, x ident) : type_scope. +Notation "∀ x y : t , P" := + (forall x y : t , P) (at level 200, x ident, y ident) : type_scope. +Notation "∀ x y z : t , P" := + (forall x y z : t , P) (at level 200, x ident, y ident, z ident) : type_scope. +Notation "∀ x y z u : t , P" := + (forall x y z u : t , P) (at level 200, x ident, y ident, z ident, u ident) : type_scope. + +Notation "∃ x , P" := (exists x , P) (at level 200, x ident) : type_scope. +Notation "∃ x : t , P" := (exists x : t, P) (at level 200, x ident) : type_scope. + +Notation "x ∨ y" := (x \/ y) (at level 85, right associativity) : type_scope. +Notation "x ∧ y" := (x /\ y) (at level 80, right associativity) : type_scope. +(* DOES NOT WORK +Notation "x → y" := (x -> y) (at level 90, right associativity): type_scope. +*) +Notation "x ↔ y" := (x <-> y) (at level 95, no associativity): type_scope. +Notation "⌉ x" := (~x) (at level 75, right associativity) : type_scope. -Notation "∃ x : t , P" := (EXT x:t|P) (at level 1, x,t,P at level 10). -Notation "x ∨ y" := (x \/ y) (at level 1, y at level 10). -Notation "x ∧ y" := (x /\ y) (at level 1, y at level 10). -Notation "x → y" := (x -> y) (at level 1, y at level 10). -Notation "x ↔ y" := (x <-> y) (at level 1, y at level 10). -Notation "⌉ x" := (~x) (at level 1, x at level 10). (* Abstraction *) +(* Not nice Notation "'λ' x : T , y" := ([x:T] y) (at level 1, x,T,y at level 10). Notation "'λ' x := T , y" := ([x:=T] y) (at level 1, x,T,y at level 10). +*) (* Arithmetic *) -Notation "x ≤ y" := (le x y) (at level 3, y at level 10). -Notation "x ≥ y" := (ge x y) (at level 3, y at level 10). +Notation "x ≤ y" := (le x y) (at level 70, no associativity). +Notation "x ≥ y" := (ge x y) (at level 70, no associativity). + +(* test *) +(* +Goal ∀ x, (∃ y , x ≥ y + 1) ∨ x ≤ 0. +*) -(* Require ZArith. - Notation "x ≤ y" := (Zle x y) (at level 1, y at level 10).*) +(* Integer Arithmetic *) +(* TODO +Notation "x ≤ y" := (Zle x y) (at level 1, y at level 10). +*) |