当前位置:网站首页>Learn tla+ (XII) -- functions through examples
Learn tla+ (XII) -- functions through examples
2022-07-05 01:41:00 【Liu Xiaojing】
Functions and examples
function
TLA+ In addition to Numbers , character string , Boolean value , Model value 4 There are two basic types , There are also two complex types , Set and function . Functions form the basis of all practical complex types .
The form of the function looks the same as the operators introduced before . There are two ways to define functions :
Function == [s \in S |-> foo] \* here foo It can be any equation . Notice I'm using theta |->, No :
Function[s \in S] == foo
Infinite sets can be used in function definitions , Such as
Doubles == [n \in Nat |-> 2*n ]
Doubles[12] = 24 \* The call mode is [], instead of ()
\* multi-parameter
Sum == [x, y \in 1..10 |-> x + y] \* Limit the x,y The value of the 1..10 in
Sum[2,3] = 5
Sum[2,30] \* error,30 be not in 1..10 in
Addx(x) == [y \in Nat |-> x+y+1]
Addx(2)[3] = 6 \* This call x=2,y=3
Set of functions
The syntax of the function set is :SetOfFunctions == [A -> B], Notice I'm using theta -> , instead of |->. -> The result of needs to be used |-> To describe . for example :
S1 == {1, 2}
S2 == {3, 4}
[s \in S1 |-> S2] = [1 |-> {3, 4}, 2 |-> {3, 4}] = <<{3,4},{3,4}>> \* This is a tuple
[S -> S] = {[1 |-> 3, 2 |-> 3], [1 |-> 3, 2 |-> 4], [1 |-> 4, 2 |-> 3], [1 |-> 4, 2 |-> 4]} = {<<3, 3>>, <<3, 4>>, <<4, 3>>, <<4, 4>>} \* This is a collection ,[1 |-> 3, 2 |-> 3] Medium 1 Represents the first element ,2 For the second element , If you will 1,2 Replace with 2,3, It cannot be expressed as <<3,3>> 了 , It can only be expressed as [2|->3,3|->3]
example
1、 Given a string , Returns the number of each character . Such as : Given <<“a”,“b”,“a”>> return [a |-> 2, b |-> 1]
\* 1 Convert tuples into sets , At this time, the set contains elements of non repeating tuples 2 Traversing set elements , Count the number of each element in the tuple
Range(S) == {S[t]:t \in 1..Len(S)}
Counter(str) == [c \in Range(str) |-> Cardinality({n \in 1..Len(str) : str[n] = c})]
Counter(<<"a","b","a">>) = [a |-> 2, b|-> 1]
2、 Given a set S And number N, return N individual S Cartesian product of , Such as Op(S, 3) == S \X S \X S
Op(S,N) == [1..N -> S]
边栏推荐
- Win:将一般用户添加到 Local Admins 组中
- phpstrom设置函数注释说明
- Change the background color of a pop-up dialog
- 【大型电商项目开发】性能压测-性能监控-堆内存与垃圾回收-39
- When the industrial Internet era is truly developed and improved, it will witness the birth of giants in every scene
- Vulnstack3
- Take you ten days to easily complete the go micro service series (IX. link tracking)
- Unified blog writing environment
- Win: enable and disable USB drives using group policy
- Win: use PowerShell to check the strength of wireless signal
猜你喜欢

MySQL REGEXP:正则表达式查询

Win:使用 PowerShell 检查无线信号的强弱

Yyds dry inventory swagger positioning problem ⽅ formula

Wechat applet: exclusive applet version of the whole network, independent wechat community contacts

Basic operations of database and table ----- create index

How to safely eat apples on the edge of a cliff? Deepmind & openai gives the answer of 3D security reinforcement learning

小程序容器技术与物联网 IoT 可以碰撞出什么样的火花

微信小程序:最新wordpress黑金壁纸微信小程序 二开修复版源码下载支持流量主收益

【LeetCode】88. Merge two ordered arrays

PowerShell: use PowerShell behind the proxy server
随机推荐
Yyds dry goods inventory kubernetes management business configuration methods? (08)
Valentine's Day flirting with girls to force a small way, one can learn
Lsblk command - check the disk of the system. I don't often use this command, but it's still very easy to use. Onion duck, like, collect, pay attention, wait for your arrival!
PHP wechat official account development
85.4% mIOU! NVIDIA: using multi-scale attention for semantic segmentation, the code is open source!
Yyds dry inventory jetpack hit dependency injection framework Getting Started Guide
How to safely eat apples on the edge of a cliff? Deepmind & openai gives the answer of 3D security reinforcement learning
[development of large e-commerce projects] performance pressure test - Optimization - impact of middleware on performance -40
Remote control service
如果消费互联网比喻成「湖泊」的话,产业互联网则是广阔的「海洋」
微信小程序:微群人脉微信小程序源码下载全新社群系统优化版支持代理会员系统功能超高收益
La jeunesse sans rancune de Xi Murong
The server time zone value ‘� й ��� ʱ 'is unrecognized or representatives more than one time zone【
Codeforces Round #770 (Div. 2) ABC
phpstrom设置函数注释说明
Yyds dry goods inventory [Gan Di's one week summary: the most complete and detailed in the whole network]; detailed explanation of MySQL index data structure and index optimization; remember collectio
Es uses collapsebuilder to de duplicate and return only a certain field
Basic operation of database and table ----- phased test II
After reading the average code written by Microsoft God, I realized that I was still too young
The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety