我是F *的新手,虽然教程编写得很好但我缺少一些好的API页面供参考。
所以我需要以下结构的精确含义:
assume val name: type
我会说这行在求解器中注册了正在使用的名字吗?
opaque type name (...) ...
调用不透明类型有什么影响?它可能需要参数列表怎么样?
请提供您用于提供此答案的参考资料。
答案 0 :(得分:2)
{
"name-of-index": {
"order": 0,
"version": 50001,
"template": "name-of-index-*",
"settings": {
"index": {
"refresh_interval": "5s"
}
},
"mappings": {
"_default_": {
"dynamic_templates": [
{
"message_field": {
"path_match": "message",
"mapping": {
"norms": false,
"type": "text"
},
"match_mapping_type": "string"
}
},
{
"string_fields": {
"mapping": {
"norms": false,
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"match_mapping_type": "string",
"match": "*"
}
}
],
"_all": {
"norms": false,
"enabled": true
},
"properties": {
"@timestamp": {
"include_in_all": false,
"type": "date"
},
"geoip": {
"dynamic": true,
"properties": {
"ip": {
"type": "ip"
},
"latitude": {
"type": "half_float"
},
"location": {
"type": "geo_point"
},
"longitude": {
"type": "half_float"
}
}
},
"@version": {
"include_in_all": false,
"type": "keyword"
}
}
}
},
"aliases": {}
}
}
的含义是假设assume val name : Type
居住的公理可由Type
访问。由于它是一个公理,它不会有实现,并且如果误用会导致逻辑上的不一致(例如假设一个严格小于0的自然数)。
F *教程与去年发生的多项更改并不完全一致,name
是该问题的一个实例。
从编译器源(写作时,在opaque
中):
'不透明'限定词因为使用奇怪的精神分裂症而被弃用。有两个重载用途: (1)鉴于“不透明的val f:t'”,行为是排除“f' f'到SMT求解器。这大致相当于新的' irreducible'预选赛。 (2)给定' opaque类型t = t'',行为是提供' t' SMT求解器,但不要内联它,除非统一需要。这大致相当于“不可展开的”行为。 (目前是默认值)。