当前位置:网站首页>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]
边栏推荐
- PHP Basics - detailed explanation of DES encryption and decryption in PHP
- PHP wechat official account development
- Do you know the eight signs of a team becoming agile?
- Async/await you can use it, but do you know how to deal with errors?
- Actual combat simulation │ JWT login authentication
- Win: enable and disable USB drives using group policy
- Wechat applet: exclusive applet version of the whole network, independent wechat community contacts
- Logstash、Fluentd、Fluent Bit、Vector? How to choose the appropriate open source log collector
- Mysql database | build master-slave instances of mysql-8.0 or above based on docker
- Basic operations of database and table ----- delete index
猜你喜欢
[CTF] AWDP summary (WEB)
After reading the average code written by Microsoft God, I realized that I was still too young
MySQL backup and recovery + experiment
MATLB | multi micro grid and distributed energy trading
微信小程序:全网独家小程序版本独立微信社群人脉
Basic operation of database and table ----- the concept of index
如何搭建一支搞垮公司的技术团队?
整理混乱的头文件,我用include what you use
MySQL REGEXP:正则表达式查询
[development of large e-commerce projects] performance pressure test - Performance Monitoring - heap memory and garbage collection -39
随机推荐
Valentine's Day flirting with girls to force a small way, one can learn
Interesting practice of robot programming 15- autoavoidobstacles
[CTF] AWDP summary (WEB)
【大型电商项目开发】性能压测-优化-中间件对性能的影响-40
Hand drawn video website
MySQL regexp: Regular Expression Query
Flutter 2.10 update details
小程序容器技术与物联网 IoT 可以碰撞出什么样的火花
Wechat applet: the latest WordPress black gold wallpaper wechat applet two open repair version source code download support traffic main revenue
When the industrial Internet era is truly developed and improved, it will witness the birth of giants in every scene
Incremental backup? db full
Express routing, express middleware, using express write interface
es使用collapseBuilder去重和只返回某个字段
node工程中package.json文件作用是什么?里面的^尖括号和~波浪号是什么意思?
Win:将一般用户添加到 Local Admins 组中
Application and Optimization Practice of redis in vivo push platform
What is the length of SHA512 hash string- What is the length of a hashed string with SHA512?
[development of large e-commerce projects] performance pressure test - Optimization - impact of middleware on performance -40
流批一体在京东的探索与实践
微信小程序:最新wordpress黑金壁纸微信小程序 二开修复版源码下载支持流量主收益