当前位置:网站首页>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]
边栏推荐
- Global and Chinese market of veterinary thermometers 2022-2028: Research Report on technology, participants, trends, market size and share
- JS implementation determines whether the point is within the polygon range
- Redis' hyperloglog as a powerful tool for active user statistics
- 流批一體在京東的探索與實踐
- Take you ten days to easily complete the go micro service series (IX. link tracking)
- MySQL regexp: Regular Expression Query
- Hedhat firewall
- [CTF] AWDP summary (WEB)
- Roads and routes -- dfs+topsort+dijkstra+ mapping
- Blue Bridge Cup Square filling (DFS backtracking)
猜你喜欢
Win:使用 Shadow Mode 查看远程用户的桌面会话
Interesting practice of robot programming 14 robot 3D simulation (gazebo+turtlebot3)
整理混乱的头文件,我用include what you use
Redis(1)之Redis简介
Application and Optimization Practice of redis in vivo push platform
Delaying wages to force people to leave, and the layoffs of small Internet companies are a little too much!
Async/await you can use it, but do you know how to deal with errors?
runc hang 导致 Kubernetes 节点 NotReady
Is there a sudden failure on the line? How to make emergency diagnosis, troubleshooting and recovery
Yyds dry inventory jetpack hit dependency injection framework Getting Started Guide
随机推荐
What is the length of SHA512 hash string- What is the length of a hashed string with SHA512?
力扣剑指offer——二叉树篇
Wechat applet; Gibberish generator
Interpretation of mask RCNN paper
Jcenter () cannot find Alibaba cloud proxy address
Hedhat firewall
19. Delete the penultimate node of the linked list
Take you ten days to easily complete the go micro service series (IX. link tracking)
Incremental backup? db full
Win:使用 PowerShell 检查无线信号的强弱
Main window in QT application
PHP wechat official account development
Discrete mathematics: propositional symbolization of predicate logic
Change the background color of a pop-up dialog
node工程中package.json文件作用是什么?里面的^尖括号和~波浪号是什么意思?
微信小程序:最新wordpress黑金壁纸微信小程序 二开修复版源码下载支持流量主收益
What is the current situation and Prospect of the software testing industry in 2022?
Global and Chinese market of portable CNC cutting machines 2022-2028: Research Report on technology, participants, trends, market size and share
MySQL regexp: Regular Expression Query
Can financial products be redeemed in advance?