- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在操纵可强制性的证明:
data a ~=~ b where
IsCoercible :: Coercible a b => a ~=~ b
infix 0 ~=~
sym :: (a ~=~ b) -> (b ~=~ a)
sym IsCoercible = IsCoercible
instance Category (~=~) where
id = IsCoercible
IsCoercible . IsCoercible = IsCoercible
coerceBy :: a ~=~ b -> a -> b
coerceBy IsCoercible = coerce
我可以简单地证明对于所有 x 可强制 a b =>。可强制 (a x) (b x)
introduce :: (a ~=~ b) -> (forall x. a x ~=~ b x)
introduce IsCoercible = IsCoercible
但反之则不然,(forall x.Coercible (a x) (b x)) => Coercible a b)
并不那么自由:
eliminate :: (forall x. a x ~=~ b x) -> (a ~=~ b)
eliminate IsCoercible = IsCoercible
{-
• Could not deduce: Coercible a b
arising from a use of ‘IsCoercible’
from the context: Coercible (a x0) (b x0)
bound by a pattern with constructor:
IsCoercible :: forall k (a :: k) (b :: k).
Coercible a b =>
a ~=~ b,
in an equation for ‘eliminate’
-}
我相当确定我的主张是有效的(尽管我愿意被反驳),但对于如何在 Haskell 中证明它缺乏 unsafeCoerce
,我没有任何好主意.
最佳答案
不,你不能。正如 Dominique Devriese 和 HTNW 在他们的评论中暗示的那样,GHC 根本不承认这种推论。这个要求更高的版本无法编译:
{-# language QuantifiedConstraints, RankNTypes #-}
import Data.Coerce
import Data.Type.Coercion
eliminate :: (forall a. Coercible (f a) (g a)) => Coercion f g
eliminate = Coercion
你的版本更加注定了。要对多态Coercion
(或~=~
)参数进行模式匹配,必须将其实例化为特定类型。 GHC 会将其实例化为 f Any ~=~ g Any
,然后它是单态的,因此不能证明您想要的结果。由于 GHC Core 已键入,因此不会飞行。
旁注:我发现无法编写非常令人沮丧
f :: (forall a. c a :- d a)
-> ((forall a. c a => d a) => r)
-> r
关于haskell - 我可以证明 (forall x.Coercible (a x) (b x)) 意味着 Coercible a b 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56797358/
当我运行以下查询时: CREATE ALGORITHM = UNDEFINED VIEW d_view_galerias AS ( SELECT id, titulo, 'foto' AS tipo,
我正在操纵可强制性的证明: data a ~=~ b where IsCoercible :: Coercible a b => a ~=~ b infix 0 ~=~ sym :: (a ~=~
在 Coercible 的当前实现中我们可以量化“代表性保留类型构造函数”,以在下面的代码中提取更安全的证明 #!/usr/bin/env stack -- stack --resolver lts-
为什么 GHC 从关联数据的强制性推断统一,为什么它与自己的检查类型签名相矛盾? 问题 {-# LANGUAGE ExplicitForAll #-} {-# LANGUAGE FlexibleCon
这是来自 MySQL 的表达式整理文档。 https://dev.mysql.com/doc/refman/5.5/en/charset-collation-expressions.html 我知道有
谁能帮我解决这个错误 Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) fo
当我运行这个查询时: SELECT * FROM text_trainer WHERE text LIKE '%@CommonBlackGirI: Tyree from Straight Out
我实际上已经将 mysql 中的表的排序规则更改为 utf8_general_ci,但它似乎仍然被识别为 latin1,因为我得到了这个 Illegal mix of collations (lati
我尝试在 Grails 中以 cp1251_general_ci 编码(支持俄语字符)使用 MySQL。但是当我启动我的应用程序时,当 bootstrap.gsp 执行时,我收到此错误: 2015-0
我有这个错误: Fatal error: Uncaught exception 'MySQLiQuery_Exception' with message 'Illegal mix of collati
您好,在我的 sql 查询中我遇到了这个错误,有人可以帮我解决这个问题吗? 编辑:我添加了我的 JavaScript 代码,我认为问题出在我的 JavaScript 代码上,因为当我直接使用我的 PH
我收到以下错误: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (utf8_general_ci,IMPLICIT) for
我收到以下错误: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (utf8_general_ci,IMPLICIT) for
我在 MySQL SERVER 5.5 和 MySQL SERVER 5.0 版本中使用两个 MySQL 服务器。我尝试在两个服务器中执行查询。这是我的查询: DELIMITER $$ DROP PR
如何一劳永逸地修复该错误?我只想能够在 MySQL 中进行联合。 (我正在寻找一个捷径,比如让 MySQL 忽略该问题或采取最佳猜测的选项,而不是要更改 100 多个表的排序规则......至少现在不
当我运行以下程序时 call clean_email('johnny@c.com'); 我收到错误 操作 '=' 的排序规则 (utf8mb4_general_ci,COERCIBLE) 和 (lat
我试图找出为什么我的 CMS 给我一个错误,但 SQLFiddle 和 phpMyAdmin 都可以正常运行查询。这是 fiddle : http://sqlfiddle.com/#!9/cadc53
好吧,我放弃了。我已经进入这个错误 2 天了,我需要帮助。 免责声明:我将需要帮助来改进这个问题,并会尽力很好地描述手头的问题,到目前为止我为解决该问题所做的工作,并分享我已阅读的博客文章和文档寻找解
我知道这个主题已经得到充分解答,但我的问题有点不同。我已在 python 代码和 html 文件中与 mysqldb 的连接中设置为 utf8 默认字符集。 conn = pymysql.co
我需要能够在我的数据库中存储像 \xF0\x9F\x94\xA5 这样的字符,根据 this post需要 UTF8mb4 编码。 所以我设置了我的数据库 CREATE DATABASE `myDB`
我是一名优秀的程序员,十分优秀!