小编May*_*erg的帖子

如何在emacs中以基本模式加载文件

在emacs中加载文件时(通过find-file),emacs将文件加载到具有适当模式的缓冲区中,调用适当的处理程序等.有时,为了调试,我希望能够将文件直接加载到基本文件中模式,不触发任何其他内容.这样做最简单的方法是什么?

emacs elisp

10
推荐指数
2
解决办法
431
查看次数

错误:引用未定义的全局"Num"

我正在尝试Num在OCaml中使用该模块(bignums和big fractions).有些东西似乎有效,而有些东西似乎没有,而且我无法生成一个完整的例子.例如:

# Num.Int(234);;
- : Num.num = Num.Int 234
# Num.mult_num;;
Characters -1--1:
  Num.mult_num;;
Error: Reference to undefined global `Num'
Run Code Online (Sandbox Code Playgroud)

我可以问一个两个bignums相乘的简单例子吗?

参考Num在这里.

ocaml bignum

10
推荐指数
2
解决办法
3434
查看次数

Emacs下Coq/Proof General中关键字和运算符的Unicode字形

此问题与在Emacs中的Proof General中配置Coq模式有关.

我正在尝试让Emacs使用相应的Unicode字形自动替换Coq中的关键字和符号.我设法定义fun为希腊小写lambdaλ,forall作为通用量词符号∀等.我没有问题定义单词的符号.

问题是,当我尝试定义操作符=>,->,<->等他们的Unicode符号⇒→↔,他们不是在勒柯克相应的Unicode字形所取代.但是,*scratch*当我测试它们时,它们会在缓冲区中被替换.我使用相同的机制将Unicode glyps与Coq表示法匹配:

(defun define-glyph (string char-info)
  (font-lock-add-keywords
   nil
   `((,(format "\\<%s\\>" string)
      (0 (progn
       (compose-region
        (match-beginning 0) (match-end 0)
        ,(apply #'make-char char-info))
       nil))))
   ))
Run Code Online (Sandbox Code Playgroud)

我怀疑问题是Coq模式将某些标点符号标记为特殊标记,因此Emacs忽略了我的代码以用Unicode字形替换它们,但我不确定.有人可以帮我解释一下吗?

unicode emacs elisp coq proof-general

9
推荐指数
1
解决办法
932
查看次数

在Coq中定义Ackermann时出错

我试图在Coq中定义Ackermann-Peters函数,我收到一条我不明白的错误消息.正如你所看到的,我把a, bAckermann 的论据打包成一对ab; 我提供了一个定义参数的排序函数的排序.然后我使用Function表单来定义Ackermann本身,为它提供ab参数的排序函数.

Require Import Recdef.    
Definition ack_ordering (ab1 ab2 : nat * nat) :=
    match (ab1, ab2) with
    |((a1, b1), (a2, b2)) => 
       (a1 > a2) \/ ((a1 = a2) /\ (b1 > b2))   
    end.
Function ack (ab : nat * nat) {wf ack_ordering} : nat :=
match ab with
| (0, b) => b + 1
| (a, 0) => ack (a-1, 1)
| (a, b) => ack (a-1, …
Run Code Online (Sandbox Code Playgroud)

coq ackermann totality

9
推荐指数
1
解决办法
1336
查看次数

存在性实例化和概念化

有人可以给我一个关于Coq存在实例化和存在概括的简单例子吗?当我想要证明exists x, P,在P某些地方Prop使用时x,我经常想要命名x(作为x0或某些),并操纵P.这可能是Coq中的一个吗?

coq

8
推荐指数
1
解决办法
2641
查看次数

如何证明Coq中的命题扩展性?

我试图证明一个关于道具的替代定理,而且我失败了.可以在coq中证明以下定理,如果不是,为什么不.

  Theorem prop_subst:
    forall (f : Prop -> Prop) (P Q : Prop), 
      (P <-> Q) -> ((f P) <-> (f Q)).
Run Code Online (Sandbox Code Playgroud)

关键是逻辑上的证据是归纳的.就我所见,Prop没有归纳定义.如何在Coq中证明这样的定理?

coq

6
推荐指数
2
解决办法
826
查看次数

记住表达式时如何命名假设?

Coq的文档带有一般警告,依赖于内置命名机制,而是选择自己的名称,以免命名机制中的更改过去证明​​无效.

在考虑表单的表达式时remember Expr as v,我们将变量v设置为表达式Expr.但是假设的名称是自动选择的,就像这样Heqv,我们有:

Heqv: v = Expr

我怎样才能选择自己的名字而不是Heqv?我总是可以使用rename命令将它重命名为我喜欢的任何内容,但这并不能保证我的证明不依赖于Coq中内置命名机制的假设未来变化.

coq

6
推荐指数
1
解决办法
286
查看次数

orgmode,指编号列表中的项目

我需要参考编号列表中的项目编号.例如:

1. Something 
2. See item (1)
3. Something else
Run Code Online (Sandbox Code Playgroud)

Orgmode让我创建超链接,但这些在打印文档中没用,所以我需要参考项目的实际编号.我并不挑剔它的呈现方式(1),<1>,1等等都可以满足我的需求.

emacs list numbered org-mode

6
推荐指数
1
解决办法
280
查看次数

Common Lisp 中的路径名、带有通配符的文件名

字符*?用作路径名中的通配符。如何引用具有?实际字符之一的文件名?例如: [18]> (wild-pathname-p #p"foo") NIL [19]> (wild-pathname-p #p"foo?") T 那么引用文件名“foo?” 不能这样做。我试图用?反斜杠转义,但这没有用。\u3f我尝试使用or转为 unicode \u003f,但这不起作用。

如何引用名称中包含通配符的文件:如何探测、打开它等?

filenames clisp wildcard common-lisp pathname

5
推荐指数
1
解决办法
873
查看次数