This commit is contained in:
Boris Marinov 2024-07-19 22:28:35 +03:00
parent 801c36415f
commit f832628e40
26 changed files with 3595 additions and 799 deletions

View File

@ -63,16 +63,16 @@ Or someone being sceptical to David Hume's scepticism:
Although many people don't necessarily subscribe to this view of mathematics as a workhorse, we can see it encoded inside the structure of most mathematics textbooks --- each chapter starts with an explanation of a concept, followed by some examples, and then ends with a list of problems that this concept solves.
There is nothing wrong with this approach, but mathematics is so much more than solving problems. It was the basis of a religious cult in ancient Greece (the Pythagoreans), it was seen by philosophers as means to understanding the laws which govern the universe. It was, and still is, a language which can allow for people with different cultural backgrounds to understand each other. And it is also art and a means of entertainment.
There is nothing wrong with this approach, but mathematics is so much more than a tool for solving problems. It was the basis of a religious cult in ancient Greece (the Pythagoreans), it was seen by philosophers as means to understanding the laws which govern the universe. It was, and still is, a language which can allow for people with different cultural backgrounds to understand each other. And it is also art and a means of entertainment. It is a mode of thinking, Or we can even say it is thinking itself. Some people say that "writing is thinking", but I would argue that writing, when refined enough, and free from any kind of bias in on the side of the author, automatically becomes *mathematical writing* --- you can almost convert the words into formulas and diagrams.
Category theory embodies all these aspects of mathematics, so I think it's very good grounds to writing a book where all of them shine --- a book that isn't based on solving of problems, but exploring concepts and seeking connections between them. A book that is, overall, pretty.
Who is this book for
====
So, who is this book for? Some people would phrase the question as "Who *should* read this book", but if you ask it this way, then the answer is nobody. Indeed, if you think in terms of "should", mathematics (or at least the type of mathematics that is reviewed here) won't help you much, although it is falsely advertised as a solution to many problems (it is, in fact, something much more).
So, who is this book for? Some people would phrase the question as "Who *should* read this book", but if you ask it this way, then the answer is "nobody". Indeed, if you think in terms of "should", mathematics (or at least the type of mathematics that is reviewed here) won't help you much, although it is falsely advertised as a solution to many problems (whereas it is, in fact, (as we established) something much more).
Let's take an example --- many people claim that Einstein's theories of relativity are essential for GPSes to work properly. Due to relativistic effects, the clocks on GPS satellites tick faster than identical clocks on the ground.
Let's take an example --- many people claim that Einstein's theories of relativity are essential for GPS-es to work properly. Due to relativistic effects, the clocks on GPS satellites tick faster than identical clocks on the ground.
They seem to think that if the theory didn't exist, the engineers that developed the GPSes would have faced this phenomenon in the following way:
@ -94,20 +94,20 @@ Although I am not an expert in special relativity, I suspect that the way this c
>
> Engineer 2: Just adjust it by X and see if it works. Oh, and tell that to some physicist. They might find it interesting.
In other words, we can solve problems without any advanced math, or with no math at all, as evidenced by the fact that the Egyptians were able to build the pyramids without even knowing Euclidean geometry. And with that I am not claiming that math is so insignificant, that it is not even good enough to serve as a tool for building stuff. Quite the contrary, I think that math is much more than just a simple tool. Thinking itself is mathematical. So going through any math textbook (and of course especially this one) would help you in ways that are much more vital than finding solutions to "complex" problems.
In other words, we can solve problems without any advanced math, or with no math at all, as evidenced by the fact that the Egyptians were able to build the pyramids without even knowing Euclidean geometry. And with that I am not claiming that math is so insignificant, that it is not even good enough to serve as a tool for building stuff. Quite the contrary, I think that math is much more than just a simple tool. So going through any math textbook (and of course especially this one) would help you in ways that are much more vital than finding solutions to "complex" problems.
Some people say that we dont use maths in our daily life. But, if true, that is only because other people have solved all hard problems for us and the solutions are encoded on the tools that we use, however not knowing math means that you will be forever a consumer, bound to use those existing tools and solutions and thinking patterns, not being able to do many things on your own.
Some people say that we dont use maths in our daily life. But, if true, that is only because other people have solved all hard problems for us and the solutions are encoded on the tools that we use, however not knowing math means that you will be forever a consumer, bound to use those existing tools and solutions and thinking patterns, not being able to do anything on your own.
And so "Who is this book for" is not to be read as who should, but who *can* read it. Then the answer is "everyone".
And so "Who is this book for" is not to be read as who should, but who *can* read it. Then, the answer is "everyone".
About category theory
===
Like we said, the fundaments of mathematics are the fundaments of thought. Category theory allows us to formalize those fundaments that we use in our daily (intellectual) lives.
The way we think and talk is based on intuition that develops naturally and is a very easy way to get our point across. However, that is part of the problem: sometimes intuition makes it *too easy* for us to say something that can be interpreted in many ways, some of which are wrong. For example, when I say that two things are equal, it would seem obvious to you what I meant, although it isn't obvious at all (how are they equal?, in what context?, etc.)
The way we think and talk is based on intuition that develops naturally and is a very easy way to get our point across. However, intuition also makes it easy to be misunderstood --- what we say usually can be interpreted in many ways, some of which are wrong. Misunderstanding of these kinds are the reason why biases appear. Moreover, some people (called "sophists" in ancient Greece) would introduce biases on purpose in order to get short-term gains (not caring that introducing biases hurts everyone on the long run).
It's in these situations that people often resort to *diagrams* to refine their thoughts. Diagrams (even more than formulas) are ubiquitous in science and mathematics.
It's in such situations, that people often resort to *formulas* and *diagrams* to refine their thoughts. Diagrams (even more than formulas) are ubiquitous in science and mathematics.
Category theory formalizes the concept of diagrams and their components --- arrows and objects --- to create a language for presenting all kinds of ideas. In this sense, category theory is a way to unify knowledge, both mathematical and scientific, and to unite various modes of thinking with common terms.

View File

@ -18,14 +18,13 @@ What is an Abstract Theory
Most scientific and mathematical theories have a specific *domain*, which they are tied to, and in which they are valid. They are created with this domain in mind and are not intended to be used outside of it. For example, Darwin's theory of evolution is created in order to explain how different *biological species* came to evolve using natural selection, quantum mechanics is a description of how particles behave at a specific scale, etc.
Even most mathematical theories, although not inherently *bound* to a specific domain like the scientific ones, are often strongly related to one, as differential equations are linked to how events change over time.
Even most mathematical theories, although they are not inherently *bound* to a specific domain (like the scientific theories) are at least strongly related to some domain, as for example differential equations are created to model how events change over time.
Set theory and category theory are different, they are not created to provide a rigorous explanation of how a particular phenomenon works, instead they provide a more general framework for explaining all kinds of phenomena. They work less like tools and more like languages for defining tools. Theories that are like that are called *abstract* theories.
The borders of the two are sometimes blurry, because all theories *use abstraction*, otherwise they would be pretty useless: without abstraction Darwin would have to speak about specific animal species or even individual animals. But theories have core concepts that don't refer to anything in particular, but are instead left for people to generalize on. All theories are applicable outside of their domains, but set theory and category theory do not have a domain to begin with.
The borders of the two are sometimes blurry. All theories *use abstraction*, otherwise they would be pretty useless: without abstraction Darwin would have to speak about specific animal species or even individual animals. But theories have core concepts that don't refer to anything in particular, but are instead left for people to generalize on. All theories are applicable outside of their domains, but set theory and category theory do not have a domain to begin with.
Concrete theories, like the theory of evolution, are composed of concrete concepts. For example, the concept of a *population*, also called a *gene-pool*, refers to a group of individuals that can interbreed. Abstract theories, like set theory, are composed of abstract concepts, like the concept of a set. The concept of a set by itself does not refer to anything. However, we cannot say that it is an empty concept, as there are countless things that can be represented by sets, for example, gene pools can be (very aptly) represented by sets of individual animals. Animal species can also be represented by sets — a set of all populations that can theoretically interbreed.
You've already seen how abstract theories may be useful. Because they are so simple, they can be used as building blocks to many concrete theories. Because they are common, they can be used to unify and compare different concrete theories, by putting these theories in common grounds (this is very characteristic of category theory, as we will see later). Moreover, good (abstract) theories can serve as *mental models* for developing our thoughts.
<!-- comic - brain on category theory -->
@ -425,7 +424,7 @@ This simple principle translates to the equally simple law of *reflexivity*: for
Transitivity
---
According to the Christian theology of the Holly Trinity, the Jesus' Father is God, Jesus is God, and the Holy Spirit is also God, however, the Father is not the same person as Jesus (neither is Jesus the Holly Spirit). If this seems weird to you, that's because it breaks the second law of equivalence relations, transitivity. Transitivity is the idea that things that are both equal to a third thing must also equal between themselves.
According to the Christian theology of the Holy Trinity, the Jesus' Father is God, Jesus is God, and the Holy Spirit is also God, however, the Father is not the same person as Jesus (neither is Jesus the Holy Spirit). If this seems weird to you, that's because it breaks the second law of equivalence relations, transitivity. Transitivity is the idea that things that are both equal to a third thing must also equal between themselves.
![Transitivity](../01_set/transitivity.svg)

View File

@ -356,13 +356,14 @@ And equally important is the opposite function, which maps a curried function to
const uncurry = <A, B, C> (f:(a:A) => (b:B) => C) => (a:A, b:B ) => f(a)(b)
```
There is a lot to say about these two functions, starting from the fact that its existence gives rise to an interesting relationship between the concept of a *product* and the concept of a *morphism* in category theory, called the *adjunction*. But we will cover this later. For now we are interested in the fact the two function representations are isomorphic, formally $A\times B\to C\cong A\to B \to C$.
There is a lot to say about these two functions, starting from the fact that its existence gives rise to an interesting relationship between the concept of a *product* and the concept of a *morphism* in category theory, called an *adjunction*. But we will cover this later. For now, we are interested in the fact the two function representations are isomorphic, formally $A\times B\to C\cong A\to B \to C$.
By the way, this isomorphism can be represented in terms of programming as well. It is equivalent to the statement that the following function always returns `true` for any arguments,
```
(...args) => uncurry(curry(f(...args)) === f(...args)
```
This is one part of the isomorphism, the other part is the equivalent function for curried functions.
**Task:** Write the other part of the isomorphism.
@ -482,7 +483,6 @@ However, it seems that the set part of the structure in this representation is k
But wait, if the monoids' underlying *sets* correspond to *objects* in category theory, then the corresponding category would have just one object. And so the correct representation would involve just one point from which all arrows come and to which they go.
![The group of rotations in a triangle - categorical notation](../03_monoid/symmetry_rotation_category.svg)
The only difference between different monoids would be the number of morphisms that they have and the relationship between them.
@ -496,7 +496,7 @@ The intuition behind this representation from a category-theoretic standpoint is
|Invertibility | | | X |
|Closure | | X | X |
When we view a monoid as a category, this law says that all morphisms in the category should be from one object to itself - a monoid, any monoid, can be seen as a *category with one object*.
When we view a monoid as a category, this law says that all morphisms in the category should be from one object to itself - a monoid, any monoid, can be seen as a *category with one object*. The converse is also true: any category with one object can be seen as a monoid.
Let's elaborate on this thought by reviewing the definition of a category from chapter 2.

View File

@ -25,7 +25,7 @@ Not all binary relationships are orders --- only ones that fit certain criteria
Linear order
===
Let's start with an example --- the most straightforward type of order that you think og is *linear order* i.e. one in which every object has its place depending on every other object. In this case the ordering criteria is completely deterministic and leaves no room for ambiguity in terms of which element comes before which. For example, order of colors, sorted by the length of their light-waves (or by how they appear in the rainbow).
Let's start with an example --- the most straightforward type of order that you think of is *linear order* i.e. one in which every object has its place depending on every other object. In this case the ordering criteria is completely deterministic and leaves no room for ambiguity in terms of which element comes before which. For example, order of colors, sorted by the length of their light-waves (or by how they appear in the rainbow).
![Linear order](../04_order/linear_order.svg)
@ -325,13 +325,13 @@ The difference between the two is small but crucial: in a tree, each element ca
A good intuition for the difference between the two is that a semilattice is capable of representing much more general relations, so for example, the mother-child relation forms a tree (a mother can have multiple children, but a child can have *only one* mother), but the "older sibling" relation forms a lattice, as a child can have multiple older siblings and vise versa.
Why am I speaking about trees? It's because people tend to use them for modelling all kinds of phenomena and to imagine everything a a tree. The tree is the structure that all of us understand, that comes at us naturally, without even realizing that we are using a structure --- most human-made hierarchies are modelled as trees. A typical organization of people are modelled as trees - you have one person at the top, a couple of people who report to them, then even more people that report to this couple of people.
Why am I speaking about trees? It's because people tend to use them for modeling all kinds of phenomena and to imagine everything as trees. The tree is the structure that all of us understand, that comes at us naturally, without even realizing that we are using a structure --- most human-made hierarchies are modeled as trees. A typical organization of people are modeled as trees - you have one person at the top, a couple of people who report to them, then even more people that report to this couple of people.
![Tree](../04_order/tree-organization.svg)
(Contrast this with informal social groups, in which more or less everyone is connected to everyone else.)
And, cities (ones that are designed rather than left to evolve naturally) are also modelled as trees: you have several neighbourhoods each of which has a school, a department store etc., connected with to each other and (in bigger cities) organized into bigger living units.
And, cities (ones that are designed rather than left to evolve naturally) are also modeled as trees: you have several neighborhoods each of which has a school, a department store etc., connected with to each other and (in bigger cities) organized into bigger living units.
The implications of the tendency to use trees, as opposed to lattices, to model are examined in the ground-breaking essay “A City is Not a Tree” by Christopher Alexander.
@ -344,29 +344,33 @@ In general, it seems that hierarchies that are specifically designed by *people*
Interlude: Formal concept analysis
===
In the previous section we (along with Christopher Alexander) argued that lattice-based hierarchies are "natural", that is, they arise in nature. Now we will see a way to uncover such hierarchies given a set of objects that share some attributes. This is an overview of a mathematical method, called *formal context analysis*.
In the previous section we (along with Christopher Alexander) argued that lattice-based hierarchies are "natural", that is, they arise in nature. Now, we will see an interesting way to uncover such hierarchies, given a set of objects that share some attributes. This is an overview of a mathematical method, called *formal context analysis*.
The datastructure that we will be analysing, called *formal context* consists of 3 sets. Firstly, the set containing all *objects* that we will be analysing (denoted as $G$).
The data structure that we will be analyzing, called *formal context* consists of 3 sets. Firstly, the set containing all *objects* that we will be analyzing (denoted as $G$).
![Formal concept analysis - function](../04_order/concept-objects.svg)
Secondly, a set of some *attributes* that these objects might have (denoted as $M$). Here we will be using the the 3 base colors.
Secondly, a set of some *attributes* that these objects might have (denoted as $M$). Here we will be using the 3 base colors.
![Formal concept analysis - function](../04_order/concept-attributes.svg)
And finally a set of relation (called *incidence*) that expresses which objects have which attributes, expressed by a set of pairs $G × M$. So, having a pair containing the color yellow, for example, indicate that the color of the ball contains the color yellow.
And finally a set of relation (called *incidence*) that expresses which objects have which attributes, expressed by a set of pairs $G × M$. So, having a pair containing a ball and a base color (yellow for example) would indicates that the color of the ball contains (i.e. is composed of) the color yellow (among other colors).
![Formal concept analysis - function](../04_order/concept-incidense.svg)
Now let's use these sets to build a lattice. First step: because functions are relations, the set of pairs is isomorphic to a function, connecting each attributes with the set of objects that share this attribute.
Now, let's use these sets to build a lattice.
First step: From the set of pairs, we build a function, connecting each attributes with the set of objects that share this attribute (we can do this because functions are relations and relations are expressed by pairs).
![Formal concept analysis - function](../04_order/concept-function.svg)
Now, if we look at the target of this function, we see some sets that might share some common elements. Is there some way to order those sets? Of course - we can order them by inclusion, and, if we add top and bottom values, we get a lattice.
Take a look at the target of this function, which is a set of sets. Is there some way to order those sets in order to visialize them better? Of course, we can order them by inclusion. In this way, each attribute would be connected to an attribute that is shared by a similar set of objects.
Add top and bottom values, and we get a lattice.
![Formal concept analysis - function](../04_order/concept-lattice.svg)
Ordering the concept as a lattice might help us see connections between the concepts, in the context e.g. we see that *all balls that contain the color yellow also contain the color red.*
Ordering the concept as a lattice might help us see connections between the concepts, in the context e.g. we see that *all balls in our set that contain the color yellow also contain the color red.*
**Task:** Take a set of object and one containing attributes and create your own concept lattice. Example: the objects can be lifeforms: fish, frog, dog, water weed, corn etc. and attributes can be their characteristics: "lives in water", "lives in land", "can move", "is a plant", "is an animal" etc.
@ -398,7 +402,7 @@ All of that structure arises naturally from the simple law of transitivity.
Preorders and equivalence relations
---
Preorders may be viewed as a middle-ground between *partial orders* and *equivalence relations*. As the missing exactly the property on which those two structures differ --- (anti)symmetry. Because of that, if we have a bunch of objects in a preorder that follow the law of *symmetry*, those objects form an equivalence relation. And if they follow the reverse law of *antisymmetry*, they form an partial order.
Preorders may be viewed as a middle-ground between *partial orders* and *equivalence relations*. As the missing exactly the property on which those two structures differ --- (anti)symmetry. Because of that, if we have a bunch of objects in a preorder that follow the law of *symmetry*, those objects form an equivalence relation. And if they follow the reverse law of *antisymmetry*, they form a partial order.
| Equivalence relation | Preorder | Partial order |
| --- | --- | --- |
@ -410,7 +414,7 @@ In particular, any subset of objects that are connected with one another both wa
![preorder](../04_order/preorder_equivalence.svg)
And, even more interestingly, if we transfer the preorder connections between the elements of thesese sets to connections between the sets themselves, these connections would follow the *antisymmetry* requirement, which means that they would form a *partial order.*
And, even more interestingly, if we transfer the preorder connections between the elements of these sets to connections between the sets themselves, these connections would follow the *antisymmetry* requirement, which means that they would form a *partial order.*
![preorder](../04_order/preorder_partial_order.svg)
@ -434,7 +438,7 @@ However, maps that contain more than one road (and even more than one *route*) c
State machines as preorders
---
Let's now reformat the preorder that we used in the previous two examples, as Hasse diagram that goes from left to right. Now, it (hopefully) doesn't look so much like a hierarchy, nor like map, but like a description of a process (which, if you think about it, is also a map just one that is temporal rather than spatial.) This is actually a very good way to describe a computation model known as *finite state machine*.
Let's now reformat the preorder that we used in the previous two examples as a Hasse diagram that goes from left to right. Now, it (hopefully) doesn't look so much like a hierarchy, nor like map, but like a description of a process (which, if you think about it, is also a map just one that is temporal rather than spatial.) This is actually a very good way to describe a computation model known as *finite state machine*.
![A state machine as a preorder](../04_order/preorder_state_machine.svg)
@ -442,7 +446,7 @@ A specification of a finite state machine consists of a set of states that the m
But as we saw, a finite state machine is similar to a preorder with a greatest and least object, in which the relations between the objects are represented by functions.
Finite state machines are used in organization planning e.g. imagine a process where a given item gets manufactured, gets checked by a quality control person, who, if they find some deficiencies, pass it to the necessary repairing departments and then they check it again and send it for shipping. This process can be modelled by the above diagram.
Finite state machines are used in organization planning e.g. imagine a process where a given item gets manufactured, gets checked by a quality control person, who, if they find some deficiencies, pass it to the necessary repairing departments and then they check it again and send it for shipping. This process can be modeled by the above diagram.
{%endif%}
@ -498,7 +502,7 @@ So it's official --- preorders are categories (sounds kinda obvious, especially
And since partial orders and total orders are preorders too, they are categories as well.
When we compare the categories of orders to other categories, like the quintessential category of sets, we see one thing that immediately sets them apart: in other categories there can be *many different morphisms (arrows)* between two objects and in orders can have *at most one morphism*, that is, we either have $a ≤ b$ or we do not.
When we compare the categories of orders to other categories, (like the quintessential category of sets), we see one thing that immediately sets them apart: in other categories there can be *many different morphisms (arrows)* between two objects and in orders can have *at most one morphism*, that is, we either have $a ≤ b$ or we do not.
![Orders compared to other categories](../04_order/arrows_one_arrow.svg)
@ -506,20 +510,23 @@ In the contrast, in the category of sets where there are potentially infinite am
![Orders compared to other categories](../04_order/order_category.svg)
Note that although two objects in an order might be directly connected by just one arrow, they might still be be *indirectly* connected by more than one arrow. So when we define an order in categorical way it's crucial to specify that *these ways are equivalent* i.e. that all diagrams that show orders commute.
So, an order is a category that has at most one morphism between two objects. But the converse is also true --- *every category* that has at most one morphism between objects is an order (or a *thin* category as it is called in category-theoretic terms).
Products and sums
An interesting fact that follows trivially from the fact that the they have at most one morphism between given two objects is that in thin categories *all diagrams commute*.
**Task:** Prove this.
Products and coproducts
---
While we are rehashing diagrams from the previous chapters, let's look at the diagram defining the *coproduct* of two objects in a category, from chapter 2.
![Joins as coproduct](../04_order/coproduct_join.svg)
If you recall, this is an operation that corresponds to *set inclusion* in the category of sets.
![Joins as coproduct](../04_order/coproduct_inclusion.svg)
But wait, wasn't there something else that corresponded to set inclusion --- oh yes, the *join* operation in orders. And not merely that, but orders are defined in the exact same way as the categorical coproducts.
But wait, wasn't there some other operation that that corresponded to set inclusion? Oh yes, the *join* operation in orders. And not merely that, but joins in orders are defined in the exact same way as the categorical coproducts.
In category theory, an object $G$ is the coproduct of objects $Y$ and $B$ if the following two conditions are met:
@ -538,4 +545,6 @@ In the realm of orders, we say that $G$ is the *join* of objects $Y$ and $B$ if:
We can see that the two definitions and their diagrams are the same. So, speaking in category theoretic terms, we can say that the *categorical coproduct* in the category of orders is the *join* operation. Which of course means that *products* correspond to *meets*.
Overall, orders are sometimes called "thin categories" as they have equivalents for most categorical concepts, and are often used for modelling structures that are simpler than the ones that require full-fledged categories. We will see an example of that in the next chapter.
Overall, orders (thin categories) are often used for exploring categorical concepts in a context that is easier to understand e.g. understand the *order-theoretic* concepts of meets and joins would help you better understand the *more general categorical* concepts of products and coproducts).
Orders are also helpful when they are used as thin categories i.e. as an alternative to "full-fledged" categories, in contexts when we aren't particularily interested in the difference between the morphisms that go from one object to another. We will see an example of that in the next chapter.

View File

@ -22,7 +22,7 @@ On top of that, it (logic) tries to organize those rules in *logical systems* (o
Logic and mathematics
---
Seeing this description, we might think that the subject of logic is quite similar to the subject of set theory and category theory, as we described it in the first chapter - instead of the word "formal" we used another similar word, namely "abstract", and instead of "logical system" we said "theory". This observation would be quite correct - today most people agree that every mathematical theory is actually logic plus some additional definitions added to it. For example, part of the reason why *set theory* is so popular as a theory for the foundations of mathematics is that it adds just one single primitive to the standard axioms of logic which we will see shortly - the binary relation that indicates *set membership*. Category theory is close to logic too, but in a quite different way.
Seeing this description, we might think that the subject of logic is quite similar to the subject of set theory and category theory, as we described it in the first chapter - instead of the word "formal" we used another similar word, namely "abstract", and instead of "logical system" we said "theory". This observation would be quite correct - today most people agree that every mathematical theory is actually logic plus some additional definitions added to it. For example, part of the reason why *set theory* is so popular as a theory for the foundations of mathematics is that it can be defined by adding just one single primitive to the standard axioms of logic which we will see shortly - the binary relation that indicates *set membership*. Category theory is close to logic too, but in a quite different way.
Primary propositions
---
@ -36,11 +36,13 @@ In the context of logic itself, these propositions are abstracted away (i.e. we
Composing propositions
---
At the heart of logic, as in category theory, is the concept of *composition* - if we have two or more propositions that are somehow related to one another, we can combine them into one using a logical operators, like "and", "or" "follows" etc. The result would be a new proposition, not unlike the way in which two monoid objects are combined into one using the monoid operation. And actually some logical operations do form monoids, like for example the operation *and*, with the proposition $true$ serving as the identity element.
At the heart of logic, as in category theory, is the concept of *composition* - if we have two or more propositions that are somehow related to one another, we can combine them into one using a logical operators, like "and", "or" "follows" etc. The results would be new propositions, which we might call *composite propositions* to emphasize the fact that they are not primary.
This composition resembles the way in which two monoid objects are combined into one using the monoid operation. Actually, some logical operations do form monoids, like for example the operation *and*, with the proposition $true$ serving as the identity element.
![Logical operations that form monoids](../05_logic/logic_monoid.svg)
However, unlike monoids/groups, logics have not one but *many* logical operations and logic studies *the ways in which they relate to one another*, for example, in logic we might be interested in the law of distributivity of *and* and $or$ operations and what it entails.
However, unlike monoids/groups, logics study combinations not just with one but with *many* logical operations and *the ways in which they relate to one another*, for example, in logic we might be interested in the law of distributivity of *and* and $or$ operations and what it entails.
![The distributivity operation of "and" and "or"](../05_logic/logic_distributivity.svg)
@ -49,7 +51,7 @@ Important to note that $∧$ is the symbol for *and* and $$ is the symbol for
The equivalence of primary and composite propositions
---
When looking at the last diagram, it is important to stress that, although in the leftmost proposition the green ball is wrapped in a gray ball to make the diagram prettier, propositions that are composed of several premises (symbolized by gray balls, containing some other balls) are not in any way different from "primary" propositions (single-color balls) and that they compose in the same way.
When looking at the last diagram, it is important to emphasize that, propositions that are composed of several premises (symbolized by gray balls, containing some other balls) are not in any way different from "primary" propositions (single-color balls) and that they compose in the same way (although in the leftmost proposition the green ball is wrapped in a gray ball to make the diagram prettier).
![Balls as propositions](../05_logic/balls_propositions.svg)
@ -58,18 +60,18 @@ Modus ponens
As an example of a proposition that contains multiple levels of nesting (and also as a great introduction of the subject of logic in its own right), consider one of the oldest (it was already known by Stoics at 3rd century B.C.) and most famous propositions ever, namely the *modus ponens*.
Modus ponens is a proposition that states that if proposition $A$ is true and also if proposition $(A → B)$ is true (that is if $A$ implies $B$), then $B$ is true as well. For example, if we know that "Socrates is a human" and that "humans are mortal" (or "being human implies being mortal"), we also know that "Socrates is mortal."
Modus ponens is a proposition that is composed of two other propositions (which here we denote $A$ and $B$) and it states that if proposition $A$ is true and also if proposition $(A → B)$ is true (that is if $A$ implies $B$), then $B$ is true as well. For example, if we know that "Socrates is a human" and that "humans are mortal" (or "being human implies being mortal"), we also know that "Socrates is mortal."
![Modus ponens](../05_logic/modus_ponens.svg)
Let's dive into it. The proposition is composed of two other propositions in a $follows$ relation, where the proposition that follows ($B$) is primary, but the proposition from which $B$ follows is not primary (let's call that one $C$ - so the whole proposition becomes $C → B$.)
Let's dive into this proposition. We can see that it is composed of two other propositions in a $follows$ relation, where the proposition that follows ($B$) is primary, but the proposition from which $B$ follows is not primary (let's call that one $C$ - so the whole proposition becomes $C → B$.)
Going one more level down, we notice that the $C$ propositions is itself composed of two propositions in an *and*, relationship - $A$ and let's call the other one $D$ (so $A ∧ D$), where $D$ is itself composed of two propositions, this time in a $follows$ relationship - $A → B$. But all of this is better visualized in the diagram.
Tautologies
---
We often cannot tell whether a given composite proposition is true or false without knowing the values of the propositions that compose it. However, with propositions such as *modus ponens* we can: modus ponens is *always true*, regardless of whether the propositions that form it are true or false. If we want to be fancy, we can also say that it is *true in all models of the logical system*, a model being a set of real-world premises are taken to be signified by our propositions.
We often cannot tell whether a given composite proposition is true or false without knowing the values of the propositions that it is made of. However, with propositions such as *modus ponens* we can: modus ponens is *always true*, regardless of whether the propositions that form it are true or false. If we want to be fancy, we can also say that it is *true in all models of the logical system*, a model being a set of real-world premises are taken to be signified by our propositions.
For example, our previous example will not stop being true if we *substitute* "Socrates" with any other name, nor if we substitute "mortal" for any other quality that humans possess.
@ -77,7 +79,7 @@ For example, our previous example will not stop being true if we *substitute* "S
Propositions that are always true are called *tautologies*. And their more-famous counterparts that are always false are called *contradictions*. You can turn each tautology into contradiction or the other way around by adding a "not".
The simplest tautology is the statement that each proposition implies itself (e.g. "All bachelors are unmarried"). It may remind you of something.
The simplest tautology is the so called law of identity, the statement that each proposition implies itself (e.g. "All bachelors are unmarried"). It may remind you of something.
![Identity tautology](../05_logic/tautology_identity.svg)
@ -135,9 +137,9 @@ The existence of the world of forms implies that, even if there are many things
![The set of boolean values](../05_logic/boolean_set.svg)
According to the classical interpretation, you can think of *primary propositions* as just a bunch of boolean values, *logical operators* are functions that take a one or several boolean values and return another boolean value (and *composite propositions* are, just the results of the application of these functions).
According to the classical interpretation, you can think of *primary propositions* as just a bunch of boolean values. *Logical operators* are functions that take a one or several boolean values and return another boolean value (and *composite propositions* are, just the results of the application of these functions).
Let's review all logical operators in this context.
Let's review all logical operators in this semantic context.
The *negation* operation
---
@ -218,9 +220,9 @@ Using those tables, we can also prove some axiom schemas we can use later:
The *implies* operation
---
Let's now look into something less trivial: the *implies* operation, (also known as *entailment*). This operation binds two propositions in a way that the truth of the first one implies the truth of the second one (or that the first proposition is a *necessary condition* for the second.) You can read $p → q$ as "if $p$ is true, then $q$ must also be true.
Let's now look into something less trivial: the *implies* operation, (also known as *material condition*). This operation binds two propositions in a way that the truth of the first one implies the truth of the second one (or that the first proposition is a *necessary condition* for the second.) You can read $p → q$ as "if $p$ is true, then $q$ must also be true.
Entailment is also a binary function - it is represented by a function from an ordered pair of boolean values, to a boolean value.
Implies is also a binary function - it is represented by a function from an ordered pair of boolean values, to a boolean value.
| p | q | p → q |
|---| --- | --- |
@ -278,7 +280,7 @@ We can easily prove this by using truth tables.
| False | True | **True** | True | True | **True** |
| False | False | **True** | True | False | **True** |
But it would be much more intuitive if we do it using axioms and rules of inference. To do so, we have to start with the formula we have ($p → q$) plus the axiom schemas, and arrive at the formula we want to prove ($¬p q$).
But it would be much more intuitive if we do it using axioms and rules of inference. To do so, we start with the formula we have ($p → q$) plus the axiom schemas, and arrive at the formula we want to prove ($¬p q$).
Here is one way to do it. The formulas that are used at each step are specified at the right-hand side, the rule of inference is modus ponens.
@ -291,11 +293,11 @@ Intuitionistic logic. The BHK interpretation
> [...] logic is life in the human brain; it may accompany life outside the brain but it can never guide it by virtue of its own power. --- L.E.J. Brouwer
Although the classical truth-functional interpretation of logic works and is correct in its own right, it doesn't fit well the categorical framework that we are using here: It is too "low-level", it relies on manipulating the values of the propositions. According to it, the operations *and* and *or* are just 2 of the 16 possible binary logical operations and they are not really connected to each other (but we know that they actually are.)
I don't know about you, but I feel that the classical truth-functional interpretation of logic (althought it works and is correct in its own right) doesn't fit well the categorical framework that we are using here: It is too "low-level", it relies on manipulating the values of the propositions. According to it, the operations *and* and *or* are just 2 of the 16 possible binary logical operations and they are not really connected to each other (but we know that they actually are.)
For these and other reasons, in the 20th century a whole new school of logic was founded, called *intuitionistic logic*. If we view classical logic as based on *set theory*, then intuitionistic logic would be based on *category theory* and its related theories. If *classical logic* is based on Plato's theory of forms, then intuitionism began with a philosophical idea originating from Kant and Schopenhauer: the idea that the world as we experience it is largely predetermined of out perceptions of it. Thus without absolute standards for truth, a proof of a proposition becomes something that you *construct*, rather than something you discover.
Classical and intuitionistic logic diverge from one another right from the start: because according to intuitionistic logic we are *constructing* proofs rather than *discovering* them or *unveiling* a universal truth, we are *off with the principle of bivalence*, that is, we have no basis to claim that each statements is necessarily *true or false*. For example, there might be a statements that might not be provable not because they are false, but simply because they fall outside of the domain of a given logical system (the twin-prime conjecture is often given as an example for this.)
Classical and intuitionistic logic diverge from one another right from the start: because according to intuitionistic logic we are *constructing* proofs rather than *discovering* them as some universal truth, we are *off with the principle of bivalence*. That is, in intuitionistic logic we have no basis to claim that each statements is necessarily *true or false*. For example, there might be a statements that might not be provable not because they are false, but simply because they fall outside of the domain of a given logical system (the twin-prime conjecture is often given as an example for this.)
Anyway, intuitionistic logic is not bivalent, i.e. we cannot have all propositions reduced to true and false.
@ -325,7 +327,7 @@ Now for the punchline: in the BHK interpretation, the *implies* operation is jus
![Implies in the BHK interpretation](../05_logic/bhk_implies.svg)
And the *modus ponens* rule of inference is nothing more than *functional application*. i.e. if we have a proof of $A$ and a function $A \to B$ we can call this function to obtain a proof of $B$.
And, (it gets even more interesting) the *modus ponens* rule of inference is nothing more than the process of *functional application*. i.e. if we have a proof of $A$ and a function $A \to B$ we can call this function to obtain a proof of $B$.
(In order to define this formally, we also need to define functions in terms of sets i.e. we need to have a set representing $A \to B$ for each $A$ and $B$. We will come back to this later.)
@ -336,15 +338,14 @@ In the section on classical logic, we proved that two propositions $A$ and $B$ a
![Implies in the BHK interpretation](../05_logic/bhk_iff.svg)
(Perhaps we should note that *not all functions are proofs*, a designated set of them. We say this, because in set theory you can construct functions and isomorphisms between any pair of singleton sets, but that won't mean that all proofs are equivalent.)
(Perhaps we should note that *not all set-theoretic functions are proofs*, only a designated set of them (which we call *canonical* functions) i.e. in set theory you can construct functions and isomorphisms between any pair of singleton sets, but that won't mean that all proofs are equivalent.)
The *negation* operation
---
So according to BHK interpretation saying that $A$ is true, means that that we possess a proof of $A$ - simple enough. But it's a bit harder to express the fact that $A$ is false: it is not enough to say that we *don't have a proof* of $A$ (the fact that don't have it, doesn't mean it doesn't exist). Instead, we must show that claiming that $A$ is true leads to a *contradiction*.
To express this, intuitionistic logic defines the constant $⊥$ which plays the role of *False* (and is also known as "absurdity" or "bottom value"). $⊥$ is defined as the proof of a formula that does not have any proofs. And the equivalent of false propositions are the ones that imply that the bottom value is provable (which is a contradiction). So $¬A$ is $A \to ⊥$.
To express this, intuitionistic logic defines the constant $⊥$ which plays the role of *False* (also known as the "bottom value"). $⊥$ is defined as the proof of a formula that does not have any proofs. And the equivalent of false propositions are the ones that imply that the bottom value is provable (which is a contradiction). So $¬A$ is $A \to ⊥$.
In set theory, the $⊥$ constant is expressed by the empty set.
@ -362,16 +363,16 @@ The only way for there to be such function is if the set of proofs of the propos
**Task** Look up the definition of function and verify that there does exist a function *from the empty set* to itself (in fact there exist a function from the empty set to any other set.
Classical VS intuitionistic logic
The law of excluded middle
---
Although from first glance intuitionistic logic seems to differ a lot from classical logic, it actually doesn't - if we try to deduce the axiom schemas/rules of inference that correspond to the definitions of the structures outlined above, we would see that they are virtually the same as the ones that define classical logic. With one exception concerning the *double negation elimination axiom* that we saw earlier, a version of which is known as *the law of excluded middle*.
Although intuitionistic logic differs a lot from classical logic when it comes to its *semantics*, i.e. in the way the whole system is built (which we described above), it actually doesn't differ so much in terms of *syntax*, i.e. if we try to deduce the axiom schemas/rules of inference that correspond to the definitions of the structures outlined above, we would see that they are virtually the same as the ones that define classical logic. There is, however, one exception concerning the *double negation elimination axiom* that we saw earlier, a version of which is known as *the law of excluded middle*.
![The formula of the principle of the excluded middle](../05_logic/excluded_middle_formula.svg)
This law is valid in classical logic and is true when we look at it in terms of truth tables, but there is no justification for it terms of the BHK interpretation - it will be true if we have a method/function/alghorithm that can prove or disprove any random proposition, which is not something that exist, or is expected to arrive any time soon.
This law is valid in classical logic and is true when we look at its truth tables, but there is no justification for it terms of the BHK interpretation. Why? in intuitionistic logic saying that something is false amounts to *constructing a proof* that it is false (that it implies the bottom value) and there is no method/function/alghorithm that can either prove that a given proposition is either true and false.
The question of whether you can use the law of excluded middle spawned a heated debate between the inventor of classical logic David Hilbert and the inventor of intuitionistic logic L.E.J. Brouwer, known as *the BrouwerHilbert controversy*.
The question of whether you can use the law of excluded middle spawned a heated debate between the classical logic proponent David Hilbert and the intuitionistic logic proponent L.E.J. Brouwer, known as *the BrouwerHilbert controversy*.
Logics as categories
===
@ -383,7 +384,7 @@ Such higher-level interpretations of logic are sometimes called *algebraic* inte
The Curry-Howard isomorphism
---
Programmers might find the definition of the BHK interpretation interesting for other reason - it is very similar to a definition of a programming language: propositions are *types*, the *implies* operations are *functions*, *and* operations are composite types (objects), and *or* operations are *sum types* (which are currently not supported in most programming languages, but that's a separate topic.) Finally a proof of a given proposition is represented by a value of the corresponding type.
Programmers might find the definition of the BHK interpretation interesting for other reason - it is very similar to a definition of a programming language: propositions are *types*, the *implies* operations are *functions*, *and* operations are composite types (objects), and *or* operations are *sum types* (which are currently not supported in most programming languages, but that's a separate topic). Finally a proof of a given proposition is represented by a value of the corresponding type.
![Logic as a programming language](../05_logic/logic_curry.svg)
This similarity is known as the *Curry-Howard isomorphism*.
@ -393,13 +394,13 @@ This similarity is known as the *Curry-Howard isomorphism*.
Cartesian closed categories
---
Knowing about the Curry-Howard isomorphism and knowing also that programming languages can be described by category theory may lead us to think that *category theory is part of this isomorphism as well*. And we would be quite correct --- this is why it is sometimes known as the Curry-Howard-*Lambek* isomorphism, Lambek being the person who discovered the categorical side. So let's examine this isomorphism. As all other isomorphisms, it comes in two parts:
Knowing about the Curry-Howard isomorphism and knowing also that programming languages can be described by category theory may lead us to think that *category theory is part of this isomorphism as well*. And we would be quite correct --- this is why it is sometimes known as the Curry-Howard-*Lambek* isomorphism (Joachim Lambek being the person who formulated the categorical side). So let's examine this isomorphism. As all other isomorphisms, it comes in two parts:
The first part is finding a way to convert a *logical system* into a category - this would not be hard for us, as sets form a category and the flavor of the BHK interpretation that we saw is based on sets.
![Logic as a category](../05_logic/category_curry_logic.svg)
**Task:** See whether you can prove that logic propositions and entailments forms a category. What is missing?
**Task:** See whether you can prove that logic propositions and the "implies" relation form a category. What is missing?
The second part involves converting a category into a logical system - this is much harder. To do it, we have to enumerate the criteria that a given category has to adhere to, in order for it to be "logical". These criteria have to guarantee that the category has objects that correspond to all valid logical propositions and no objects that correspond to invalid ones.
@ -410,13 +411,11 @@ Categories that adhere to these criteria are called *cartesian closed categories
Logics as orders
---
We will now do something that is quite characteristic of category theory - examining a concept in a more limited version of the theory, in order to make things simpler for ourselves.
So we already saw that a logical system along with a set of primary propositions forms a category.
So, we already saw that a logical system along with a set of primary propositions forms a category.
![Logic as a preorder](../05_logic/logic_category.svg)
If we assume that there is only one way to go from proposition $A$, to proposition $B$ (or there are many ways, but we are not interested in the difference between them), then logic is not only a category, but a *preorder* in which the relationship "bigger than" is taken to mean "implies".
If we assume that there is only one way to go from proposition $A$, to proposition $B$ (or there are many ways, but we are not interested in the difference between them), then logic is not only a category, but a *preorder* in which the relationship "bigger than" is taken to mean "implies", so ($A \to B$ is $A > B$).
![Logic as a preorder](../05_logic/logic_preorder.svg)
@ -424,10 +423,12 @@ Furthermore, if we count propositions that follow from each other (or sets of pr
![Logic as an order](../05_logic/logic_order.svg)
And so it can be represented by a Hasse diagram, yey.
And so it can be represented by a Hasse diagram, in which $A \to B$ only if $A$ is below $B$ in the diagram.
![Logic as an order](../05_logic/logic_hasse.svg)
This is something quite characteristic of category theory --- examining a concept in a more limited version of a category (in this case orders), in order to make things simpler for ourselves.
Now let's examine the question that we asked before - exactly which ~~categories~~ orders represent logic and what laws does an order have to obey so it is isomorphic to a logical system? We will attempt to answer this question as we examine the elements of logic again, this time in the context of orders.
The and and or operations
@ -437,92 +438,177 @@ By now you probably realized that the *and* and *or* operations are the bread an
![Order meet and joing](../05_logic/lattice_meet_join.svg)
Here comes the first criteria for an order to represent a logical system accurately - *it has to have $meet$ and $join$ operations for all elements*. Having two elements without a meet would mean that you would have a logical system where there are propositions for which you cannot say that one or the other is true. And this is not how logic works, so our order has to have meets and joins for all elements. Incidentally we already know how such orders are called - they are called *lattices*.
Logic allows you to combine any two propositions in and *and* or *or* relationship, so, in order for an order to be "logical" (to be a correct representation for a logical system,) *it has to have $meet$ and $join$ operations for all elements*. Incidentally we already know how such orders are called - they are called *lattices*.
One important law of the *and* and *or* operations, that is not always present in the *meet*-s and *join*-s concerns the connection between the two, i.e. way that they distribute, over one another.
And there is one important law of the *and* and *or* operations, that is not always present in all lattices. It concerns the connection between the two, i.e. way that they distribute, over one another.
![The distributivity operation of "and" and "or"](../05_logic/logic_distributivity.svg)
Lattices that obey this law are called *distributive lattices*.
Wait, where have we heard about distributive lattices before? In the previous chapter we said that they are isomorphic to *inclusion orders* i.e. orders which contain all combinations of sets of a given number of elements. The fact that they popped up again is not coincidental - "logical" orders are isomorphic to inclusion orders. To understand why, you only need to think about the BHK interpretation - the elements which participate in the inclusion are our prime propositions. And the inclusions are all combinations of these elements, in an $or$ relationship (for simplicity's sake, we are ignoring the *and* operation.)
Wait, where have we heard about distributive lattices before? In the previous chapter we said that they are isomorphic to *inclusion orders* i.e. orders of sets, that contain a given collection of elements, and that contain *all combinations* of a given set of elements. The fact that they popped up again is not coincidental --- "logical" orders are isomorphic to inclusion orders. To understand why, you only need to think about the BHK interpretation --- the elements which participate in the inclusion are our prime propositions. And the inclusions are all combinations of these elements, in an *or* relationship (for simplicity's sake, we are ignoring the *and* operation.)
![A color mixing poset, ordered by inclusion](../05_logic/logic_poset_inclusion.svg)
$NB: For historical reasons, the symbols for *and* and *or* logical operations are flipped when compared to arrows in the diagrams ∧ is *and* and is *or*.$
The *or* and *and* operations (or, more generally, the *coproduct* and the *product*) are, of course, categorically dual, which would explain why the symbols that represent them $\lor$ and $\land$ are the one and the same symbol, but flipped vertically.
And even the symbol itself looks like a representation of the way the arrows converge. This is probably not the case, as this symbol is used way before Hasse diagrams were a thing --- for all we know the $\lor$ symbol is probably symbolizes the "u" in "uel" (the latin word for "or") and the *and* symbol is just a flipped "u") --- but I still find the similarity fascinating.
The *negation* operation
---
In order for a distributive lattice to represent a logical system, it has to also have objects that correspond to the values $True$ and $False$. But to mandate that these objects exist, we must first find a way to specify what they are in order/category-theoretic terms.
In order for a distributive lattice to represent a logical system, it has to also have objects that correspond to the values *True* and *False* (which are written $\top$ and $\bot$). But, to mandate that these objects exist, we must first find a way to specify what they are in order/category-theoretic terms.
A well-known result in logic, called *the principle of explosion*, states that if we have a proof of $False$ (or if "$False$ is true" if we use the terminology of classical logic), then any and every other statement can be proven. And we also know that no true statement implies $False$ (in fact in intuitionistic logic this is the definition of a true statement). Based on these criteria we know that the $False$ object would look like this when compared to other objects:
A well-known result in logic, called *the principle of explosion*, states that if we have a proof of *False* (which we write as $\bot$) i.e. if we have a statement "*False* is true" if we use the terminology of classical logic, then any and every other statement can be proven. And we also know that no true statement implies *False* (in fact in intuitionistic logic this is the definition of a true statement). Based on these criteria we know that the *False* object would look like this when compared to other objects:
![False, represented as a Hasse diagram](../05_logic/lattice_false.svg)
Circling back to the BHK interpretation, we see that the empty set fits both conditions.
Circling back to the BHK interpretation, we see that the empty set fits both of these conditions.
![False, represented as a Hasse diagram](../05_logic/lattice_false_bhk.svg)
Conversely, the proof of $True$ (or the statement that "$True$ is true") is trivial and doesn't say anything, so *nothing follows from it*, but at the same time it follows from every other statement.
Conversely, the proof of *True* which we write as $\top$, expressing the statement that "*True* is true", is trivial and doesn't say anything, so *nothing follows from it*, but at the same time it follows from every other statement.
![True, represented as a Hasse diagram](../05_logic/lattice_true.svg)
So $True$ and $False$ are just the *greatest* and *least* objects of our order (in category-theoretic terms *terminal* and *initial* object.)
So *True* and *False* are just the *greatest* and *least* objects of our order (in category-theoretic terms *terminal* and *initial* object.)
![The whole logical system, represented as a Hasse diagram](../05_logic/lattice_true_false.svg)
This is another example of the categorical concept of duality - $True$ and $False$ are dual to each other (which makes a lot of sense if you think about it.)
This is another example of the categorical concept of duality - $\top$ and $\bot$ are dual to each other, which makes a lot of sense if you think about it, and also helps us remember their symbols (althought if you are like me, you'll spent a year before you stop wondering which one is which, every time I see them).
So in order to represent logic, our distributive lattice has to also be *bounded* i.e. it has to have greatest and least elements (which play the roles of $True$ and $False$.)
So in order to represent logic, our distributive lattice has to also be *bounded* i.e. it has to have greatest and least elements (which play the roles of *True* and *False*).
The *implies* operation
---
Finally, if a lattice really represents a logical system (that is, it is isomorphic to a set of propositions) it also has to have *function objects* i.e. there needs to be a rule that identifies a unique object $A → B$ for each pair of objects $A$ and $B$, such that all axioms of logic are followed.
How would this object be described? You guessed it, using categorical language i.e. by recognizing a structure that consists of set of relations between objects in which ($A → B$) plays a part.
As we said, every lattice has representations of propositions implying one another (i.e. it has arrows), but to really represents a logical system it also has to have *function objects* i.e. there needs to be a rule that identifies a unique object $A → B$ for each pair of objects $A$ and $B$, such that all axioms of logic are followed.
![Implies operation](../05_logic/implies.svg)
This structure is actually a categorical reincarnation our favorite rule of inference, the *modus ponens* ($A ∧ (A → B) → B$). This rule is the essence of the *implies* operation and, because we already know how the operations that it contains (*and* and *implies*) are represented in our lattice, we can directly "categorize" it and use it as a definition, saying that $(A → B)$ is the object which is related to objects $A$ and $B$ in such a way that such that $A ∧ (A → B) → B$.
We will describe this object in the same way we described all other operations --- by defining a structure consisting of a of objects and arrows in which $A → B$ plays a part. And this structure is actually a categorical reincarnation our favorite rule of inference, the *modus ponens*.
![Implies operation with impostors](../05_logic/implies_modus_ponens.svg)
![Implies operation](../05_logic/implies_modus_ponens.svg)
This definition is not complete, however, because $(A → B)$ is *not the only object* that fits in this formula. For example, the set $A → B ∧ C$ is also one such object, as is $A → B ∧ C ∧ D$. So how do we set apart the real formula from all those "imposter" formulas? If you remember the definitions of the *categorical product* (or of its equivalent for orders, the *meet* operation) you would already know where this is going: we define the function object using a *universal property*, by recognizing that all other formulas that can be in the place of $X$ in $A ∧ X → B$ point to $(A → B)$ i.e. they are below $(A → B)$ in a Hasse diagram.
Modus ponens is the essence of the *implies* operation, and, because we already know how the operations that it contains (*and* and *implies*) are represented in our lattice, we can directly use it as a definition by saying that the object $A → B$ is the one for which modus ponens rule holds.
> The function object $A → B$ is an object which is related to objects $A$ and $B$ in such a way that such that $A ∧ (A → B) → B$.
This definition is not complete, however, because (as usual) $A → B$ is *not the only object* that fits in this formula. For example, the set $A → B ∧ C$ is also one such object, as is $A → B ∧ C ∧ D$ (not going to draw all the arrows here, because it will get too (and I mean too) messy).
![Implies operation with universal property](../05_logic/implies_modus_ponens_impostors.svg)
So how do we set apart the real formula from all those "imposter" formulas? If you remember the definitions of the *categorical product* (or of its equivalent for orders, the *meet* operation) you would already know where this is going: we recognize that $A \to B$ is the upper *limit* of $A → B ∧ C$ and $A → B ∧ C ∧ D$ and all other imposter formulas that can be in the place of $X$ in $A ∧ X → B$. The relationship can be described in a variety of ways:
* We can say that $A \to B$ is the most *trivial* result for which the formula $A ∧ X → B$ is satisfied and that all other results are *stronger*.
* We can say that all other results imply $A \to B$ but not the other way around.
* We can say that all other formulas lie *below* $A → B$ in the Hasse diagram.
![Implies operation with universal property](../05_logic/implies_universal_property.svg)
Or, using the logic terminology, we say that $A → B ∧ C$ and $A → B ∧ C ∧ D$ etc. are all "stronger" results than ($A → B$) and so ($A → B$) is the weakest result that fits the formula (stronger results lay lower in the diagram).
So, after choosing the best way to express the relationship (they are all equivalent) we are ready to present our final definition:
So this is the final condition for an order/lattice to be a representation of logic - for each pair $A$ and $B$, it has to have a unique object $X$ which obey the formula $A ∧ X → B$ and the universal property. In category theory this object is called the *exponential object*.
> The function object $A → B$ is the topmost object which is related to objects $A$ and $B$ in such a way that $A ∧ (A → B) → B$.
Without being too formal, let's try to test if this definition captures the concept correctly by examining a few special cases.
The existence of this function object (called *exponential object* in category-theoretic terms) is the final condition for an order/lattice to be a representation of logic.
For example, let's take $A$ and $B$ to be the same object. In this case, ($A → B$) (or ($A → A$) if you want to be pedantic) would be the topmost object $X$ for which the criteria given by the formula $A ∧ X → A$ is satisfied. But in this case the formula is *always satisfied* as the *meet* of $A$ and any other object would always be below $A$. So this formula is always satisfied for all $X$. The topmost object that fits it is, then, the topmost object out there i.e. $True$.
Note, by the way, that this definition of function object is valid specifically for intuinistic logic. For classical logic, the definition of is simpler --- there $A → B$ is just $\lnot A B$, because of the law of excluded middle.
The *if and only if* operation
---
When we examined the *if and only if* operation can be defined in terms *implies*, that is $A \leftrightarrow B$ is equivalent to $A \to B \land B \to A$.
![Implies identity](../05_logic/isomorphism.svg)
We have something similar for categorical logic as well --- We say that when two propositions are connected to each other, then, particularily when we speak of orders, they are isomorphic.
A taste of categorical logic
===
In the previous section we saw some definitions, here we will convince ourselves that they really capture the concept of logic correctly, by proving some results using categorical logic.
True and False
---
The join (or least upper bound) of the *topmost* object $\top$ (which plays the role of the value *True*) and any other object that you can think of, is... $\top$ itself (or something isomorphic to it, which, as we said, is the same thing). This follows trivially from the fact that the join of two objects must be bigger or equal than both of these objects, and that there is no other object that is bigger or equal to the $\top$ is $\top$ itself. This is simply because $\top$ (as any other object) is equal to itself and because there is by definition no object that is bigger than it.
![Implies identity](../05_logic/join_true.svg)
This corresponds to the logical statement that $A \lor \top$ is equal to $\top$ i.e. it is true. Hence, the above observation is a proof of that statement, (an alternative to truth tables).
**Task**: Think of the duel situation, with False. What does it imply, logically?
And and Or
---
Above, we saw that the join between any random object and the top object is the top object itself. But, does this situation only occur when the second object is $\top$? Wouldn't the same thing happen if $\top$ it is replaced by any other object that is higher than the first one?
![Implies identity](../05_logic/join_bigger_true.svg)
The answer is "Yes": when we are looking for the join of two object, we are looking for the *least* upper bound i.e. the *lowest* object that is above both of them. So, any time we have two objects and one is higher than the other, their join would be (isomorphic to) the higher object.
![Implies identity](../05_logic/join_bigger.svg)
In other words, if $A \to B$, then $A \land B \leftrightarrow B$
Implies
---
For our first example with implies, let's take the formula $A → B$, and examine the case when $A$ and $B$ are the same object. We said that, $A → B$ ($A → A$ in our case) is the topmost object $X$ for which the criteria given by the formula $A ∧ X → B$ is satisfied. But in this case, the formula is satisfied for any $X$, (because it evaluates to $A ∧ X → A$, which is always true), i.e. the topmost object that satisfies it is... the topmost object there is i.e. (an object isomorphic to) $True$.
![Implies identity](../05_logic/implies_identity.svg)
This corresponds to the identity axiom in logic, that states that everything follows from itself.
Does this make sense? Of course it does: in fact, we just proved one of the most famous laws in logic (called the law of identity, as per Aristotel), namely that $A → A$ is always true, or that everything follows from itself.
And by the similar logic we can see easily that if we take $A$ to be any object that is below $B$, then $(A → B)$ will also correspond to the $True$ object.
And what happens if $A$ implies $B$ in any model, i.e. if $A \models B$ (semantic consequence)? In this case, $A$ would be below $B$ in our Hasse diagram (e.g. $A$ is the blue ball and $B$ is the orange one). Then the situation is somewhat similar to the previous case: $A ∧ X → B$ will be true, no matter what $X$ is (simply because $A$ already implies $B$, by itself). And so $A → B$ will again correspond to the $True$ object.
![Implies when A follows from B](../05_logic/implies_b_follows.svg)
So if we have $A → B$ if $A$ implies $B$, then $(A → B)$ is always true.
This is again a well-known result in logic (if I am not mistaken, it will be a deduction theorem of some sort): if $A \models B$), then the statement $(A → B)$ will always be true.
And what if $B$ is lower than $A$. In this case the topmost object that fits the formula $A ∧ X → B$ is $B$ itself: $B$ fits the formula because the meet of two objects is always below those same objects, so $A ∧ B → B$ for all $A$ and $B$. And $B$ is definitely the topmost object that can possibly fit it, as it literary sets its upper bound.
<!--
If and only if
---
Now for the a more complicated task: what would happen if $A$ is above $B$ i.e. if $B \models A$? What would the topmost object that fits the formula $(A ∧ X) → B$ then? Well, in this case there are many objects $A \land X$ that are also above $B$ and so they *don't* imply $B$. The highest such object that is below $B$ (so it can still imply $B$) would be... $B$ itself (as it literary sets the upper bound).
![Implies when B follows from A](../05_logic/implies_a_follows.svg)
Translated to logical language, says that if $B → A$, then the proof of $(A → B)$ is just the proof of $B$.
Note that this definition does not follow the one from the truth tables exactly. This is because this definition is valid specifically for intuinistic logic. For classical logic, the definition of $(A → B)$ is simpler - it is just equivalent to ($-A B$).
By the way, the law of distributivity follows from this criteria, so the only criteria that are left for an lattice to follow the laws of intuinistic logic is for it to be *bounded* i.e. to have greatest and least objects ($True$ and $False$) and to have a function object as described above. Lattices that follow these criteria are called *Heyting algebras*.
And for a lattice to follow the laws of classical logic it has to be *bounded* and *distributive* and to be *complemented* which is to say that each proposition $A$ should be complemented with a unique proposition $\neg A$ (such that $A \neg A = 1$ and $A ∧ \neg A = 0$). These lattices are called *boolean algebras*.
Translated to logical language, this says that if we have $B \models A$, then the proof of $A → B$ coincides with the proof of $B$.
-->
<!--
Classical VS intuitionistic logic
===
So, we already formulated the definition of intuitionistic logic in terms of order/lattice --- it is represented by a lattice that is bounded (i.e. has greatest and least objects ($True$ and $False$)) and that has function objects (the law of distributivity which we mentioned earlier is always true for lattices that have function object).
More interestingly, a lattice can follow the laws of *classical logic*, as well. it has to be *bounded* and *distributive* and in addition to that it has to be *complemented* which is to say that each proposition $A$, there exist an a unique proposition $\neg A$ (such that $A \neg A = 1$ and $A ∧ \neg A = 0$). These lattices are called *boolean algebras*.
Constructive proofs
---
Intuitionistic logic is also called *constructive* logic, or constructive mathematics. And the proofs in intuitionistic logic are constructive.
Proving a negative
---
If classical logic is based on the belief that everything is either true or false, intuitionistic logic gives precedence to the famous common-sense principle that *you cannot prove a negative*.
which means that while you can given a true statement and follow the arrows to reach other true statements, false statements would remain unreachable.
Given a logical system, consisting of axioms and rules of inference, I define positive statements as statements of the type "X follows from the axioms" and negative statements as statements of type "X does not follow from the axioms".
Given those definitions, a positive statement is proven by just applying the rules of inference to the axioms until you reach the statement you want to prove, while there is no general way to prove a negative statement.
![Path from truth](../05_logic/paths_truth.svg)
https://www.algebraicjulia.org/blog/post/2021/09/cset-graphs-4/
https://personal.math.ubc.ca/~cytryn/teaching/scienceOneF10W11/handouts/OS.proof.4methods.html
https://en.wikibooks.org/wiki/Mathematical_Proof/Methods_of_Proof#Direct_proof
-->

View File

@ -1,17 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 595.3 189.5"
viewBox="0 0 595.3 234.5"
version="1.1"
id="svg15613"
sodipodi:docname="implies_a_follows.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="234.5"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
@ -20,7 +22,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -35,127 +36,238 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="1.8244853"
inkscape:cx="261.02356"
inkscape:cy="100.157"
inkscape:zoom="2.4290271"
inkscape:cx="274.80139"
inkscape:cy="165.70421"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613" />
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,289.82281,-7.4377818)"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,287.26847,34.638909)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,293.10341,-332.48332)"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,290.54907,-290.40663)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2836-2-5-2-6-2-1-8-8"
transform="matrix(1.5387514,-0.89002978,0.89002978,1.5387514,-211.35873,101.98636)"
inkscape:transform-center-x="3.3436919"
inkscape:transform-center-y="-15.625386">
id="g2836-2-5-2-6-2-1-8-8-7"
transform="matrix(-0.9833479,-2.2417444,2.2417444,-0.9833479,314.97878,875.96912)"
inkscape:transform-center-x="22.213677"
inkscape:transform-center-y="2.2495508">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-1"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-1-6"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 243.86348,124.12463 c 7.7529,-7.76156 19.59279,-8.78092 27.6379,-7.03511"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-0"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-0-7"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2840-8-6-3"
transform="matrix(0.81169487,0,0,0.81169487,122.69375,-32.002264)">
transform="matrix(1.1177781,0,0,1.1177781,81.923117,-51.877826)">
<circle
cx="270.0488"
cy="79.722664"
r="30.101343"
id="circle15601-3-4-8-0"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="269.64572"
cy="79.04866"
r="12.028388"
id="circle15605-5-5-8-4"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622279;stroke-miterlimit:10" />
</g>
<g
id="g2832-0-7-4"
transform="matrix(0.81169487,0,0,0.81169487,82.742662,-62.407445)">
<circle
cx="219.86087"
cy="188.36188"
r="30.101343"
id="circle15601-3-0-3-2-4"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="219.79033"
cy="189.25879"
r="12.028388"
id="circle15603-3-6-2-4"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-7"
transform="matrix(-0.58458964,-1.6787387,1.6787387,-0.58458964,239.87352,642.90321)"
inkscape:transform-center-x="10.360889"
inkscape:transform-center-y="8.2025333"
transform="matrix(-2.0497107,-1.3383111,1.3383111,-2.0497107,630.85295,745.66046)"
inkscape:transform-center-x="3.5645955"
inkscape:transform-center-y="17.01913"
style="stroke:#000000;stroke-opacity:1">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-6"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#000000;stroke-width:2.33961892;stroke-miterlimit:10;stroke-opacity:1"
style="display:inline;fill:#dddddd;stroke:#000000;stroke-width:2.33962;stroke-miterlimit:10;stroke-opacity:1"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 242.7095,118.61874 c 10.03327,-2.44287 20.74677,-3.27503 28.79188,-1.52922"
d="m 235.67429,118.64049 c 10.03327,-2.44287 27.78198,-3.29678 35.82709,-1.55097"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-3"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#000000;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#000000;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-7-9"
transform="matrix(0.55195588,-2.3848973,-2.3848973,-0.55195588,510.28003,793.07718)"
inkscape:transform-center-x="-15.691977"
inkscape:transform-center-y="9.8096597">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-6-6"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 223.29668,122.53713 c 9.99314,-5.23467 40.15959,-7.19342 48.2047,-5.44761"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-3-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-7-9-6"
transform="matrix(2.4355942,-0.24550248,0.24550248,2.4355942,-349.47688,-182.63542)"
inkscape:transform-center-x="7.9125653"
inkscape:transform-center-y="-17.136778">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-6-6-3"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 217.74875,133.04076 c 15.66489,-12.19799 45.70752,-17.69705 53.75263,-15.95124"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-3-4-9"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2852-5-9-1"
transform="matrix(1.1177781,0,0,1.1177781,-33.078152,-14.717138)">
<circle
cx="332.86816"
cy="190.67238"
r="30.101343"
id="circle15601-6-4-2-7"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="347.98178"
cy="190.68867"
r="12.028388"
id="circle15603-2-7-6-5"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
<circle
cx="317.7403"
cy="191.93591"
r="13.235431"
id="circle15605-7-6-6-9"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.85543;stroke-miterlimit:10" />
<g
transform="matrix(0.31836941,0,0,0.31836941,244.30788,162.85877)"
id="g2762-2-5-4-6">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-61-6-9-2"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-8-9-5-1"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-7-3-0-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-9-7-4-8"
inkscape:connector-curvature="0"
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-2-4-8-5"
inkscape:connector-curvature="0"
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-0-5-7-7"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.24854555,-0.00840025,0.02928427,0.34639884,354.43593,-421.92931)"
id="g1482-7-0-1-0-3-6-9"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.24854555,-0.00840025,0.02928427,0.34639884,358.85695,-859.96973)"
id="g1482-7-0-1-0-3-6-7-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,278.96703,-322.43291)"
id="g1482-7-0-1-0-3-6-2"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,287.02562,-1120.8877)"
id="g1482-7-0-1-0-3-6-7-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2762-1-3-4"
transform="matrix(0.54103121,0,0,0.54103121,116.32016,42.292261)">
transform="matrix(0.74504946,0,0,0.74504946,64.059649,40.267823)">
<circle
cx="323.01764"
cy="91.036781"
r="45.160252"
id="circle15601-2-8-1"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="348.40515"
cy="90.286079"
r="18.045874"
id="circle15603-9-5-8"
style="fill:#f58235;stroke:#e76524;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10" />
<g
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-3-6-5"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
inkscape:transform-center-x="5.0319336"
inkscape:transform-center-y="-7.1122447">
<path
style="stroke-width:35.52600098"
style="stroke-width:35.526"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-1-1-9"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="stroke-width:10.64900017;paint-order:markers fill stroke"
style="stroke-width:10.649;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-9-1-7"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
@ -167,88 +279,22 @@
cy="89.831909"
r="18.045874"
id="circle15605-4-5-5"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-7-9"
transform="matrix(0.17089105,-1.7693798,-1.7693798,-0.17089105,506.86234,564.69471)"
inkscape:transform-center-x="-12.475369"
inkscape:transform-center-y="5.6988713">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-6-6"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 223.29668,122.53713 c 9.99314,-5.23467 40.15959,-7.19342 48.2047,-5.44761"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-3-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2852-5-9-1"
transform="matrix(0.81169487,0,0,0.81169487,38.427884,3.8701564)">
id="g8"
transform="matrix(1.1177781,0,0,1.1177781,-47.37278,-98.40875)">
<circle
cx="332.86816"
cy="190.67238"
cx="219.86087"
cy="188.36188"
r="30.101343"
id="circle15601-6-4-2-7"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
id="circle7"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="347.98178"
cy="190.68867"
cx="219.79033"
cy="189.25879"
r="12.028388"
id="circle15603-2-7-6-5"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
<circle
cx="317.7403"
cy="191.93591"
r="13.235431"
id="circle15605-7-6-6-9"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.8554343;stroke-miterlimit:10" />
<g
transform="matrix(0.31836941,0,0,0.31836941,244.30788,162.85877)"
id="g2762-2-5-4-6">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-61-6-9-2"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.52979565;stroke-miterlimit:10"
id="circle15603-8-9-5-1"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-7-3-0-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-9-7-4-8"
inkscape:connector-curvature="0"
style="stroke-width:35.52600098" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-2-4-8-5"
inkscape:connector-curvature="0"
style="stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10"
id="circle15605-0-5-7-7"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
id="circle8"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,17 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 595.3 189.5"
viewBox="0 0 595.3 226.5"
version="1.1"
id="svg15613"
sodipodi:docname="implies_b_follows.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="226.5"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
@ -20,7 +22,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -35,141 +36,144 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-width="1550"
inkscape:window-height="463"
id="namedview15615"
showgrid="false"
inkscape:zoom="2.5802118"
inkscape:cx="289.08774"
inkscape:cy="109.49407"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613" />
inkscape:zoom="1.0136029"
inkscape:cx="402.0312"
inkscape:cy="25.65107"
inkscape:window-x="12"
inkscape:window-y="10"
inkscape:window-maximized="0"
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.24854555,-0.00840025,0.02928427,0.34639884,349.4635,-61.391129)"
transform="matrix(0.24854555,-0.00840025,0.02928427,0.34639884,375.93298,-24.629976)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.24854555,-0.00840025,0.02928427,0.34639884,353.88452,-499.43156)"
transform="matrix(0.24854555,-0.00840025,0.02928427,0.34639884,380.354,-462.6704)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2836-2-5-3-4"
transform="matrix(-0.84876137,-1.2449399,-1.5210419,0.98654056,706.66298,270.24058)">
transform="matrix(0.63935064,-2.5465931,-3.0456443,-0.83954824,513.50154,880.43627)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-2-9"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 188.45489,123.97278 c 21.58651,-6.65445 62.67468,-9.62982 83.04649,-6.88326"
d="m 235.5379,118.64795 c 5.58211,-2.7717 29.46487,-2.5996 35.96348,-1.55843"
id="path1480-1-3-1-5-7-6-7-2-0-2"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.18987119;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.18987;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8"
transform="matrix(-1.2616127,-0.71640439,-0.71640439,1.2616127,662.43374,143.63181)">
transform="matrix(-2.1984665,-1.2483951,-1.2483951,2.1984665,893.29551,197.33105)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 242.7095,118.61874 c 10.03327,-2.44287 20.74677,-3.27503 28.79188,-1.52922"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2840-8-6"
transform="matrix(0.66247801,0,0,0.66247801,105.09488,77.226087)">
transform="matrix(1.1544238,0,0,1.1544238,-108.7955,48.525092)">
<circle
cx="270.0488"
cy="79.722664"
r="30.101343"
id="circle15601-3-4-8"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="269.64572"
cy="79.04866"
r="12.028388"
id="circle15605-5-5-8"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2832-0-7"
transform="matrix(0.66247801,0,0,0.66247801,68.12242,-39.339912)">
transform="matrix(1.1544238,0,0,1.1544238,-147.48941,-118.57559)">
<circle
cx="219.86087"
cy="188.36188"
r="30.101343"
id="circle15601-3-0-3-2"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="219.79033"
cy="189.25879"
r="12.028388"
id="circle15603-3-6-2"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0"
transform="matrix(-1.2616127,-0.71640439,-0.71640439,1.2616127,733.2977,189.3339)">
transform="matrix(-2.1984665,-1.2483951,-1.2483951,2.1984665,985.9009,238.00234)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 242.7095,118.61874 c 10.03327,-2.44287 20.74677,-3.27503 28.79188,-1.52922"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2852-5-9"
transform="matrix(0.66247801,0,0,0.66247801,136.13091,43.150896)">
transform="matrix(1.1544238,0,0,1.1544238,-88.533706,-35.851749)">
<circle
cx="332.86816"
cy="190.67238"
r="30.101343"
id="circle15601-6-4-2"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="347.98178"
cy="190.68867"
r="12.028388"
id="circle15603-2-7-6"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
<circle
cx="317.7403"
cy="191.93591"
r="13.235431"
id="circle15605-7-6-6"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.8554343;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:1.85543;stroke-miterlimit:10" />
<g
transform="matrix(0.31836941,0,0,0.31836941,244.30788,162.85877)"
id="g2762-2-5-4">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-61-6-9"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.52979565;stroke-miterlimit:10"
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-8-9-5"
r="18.045874"
cy="90.286079"
@ -179,58 +183,102 @@
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-7-3-0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10">
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-9-7-4"
inkscape:connector-curvature="0"
style="stroke-width:35.52600098" />
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-2-4-8"
inkscape:connector-curvature="0"
style="stroke-width:10.64900017;paint-order:markers fill stroke" />
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-0-5-7"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,300.46408,74.866423)"
id="g1482-7-0-1-0-3-6-2"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,308.52267,-723.58838)"
id="g1482-7-0-1-0-3-6-7-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2836-2-5-2-6-2-1-8-0-9"
transform="matrix(2.6443764,0.03046481,-0.03046481,2.6443764,-314.56481,-282.57213)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-9-6"
transform="matrix(-2.6443434,0.03320296,-0.03320296,-2.6443434,1103.5949,352.20763)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0-9"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2762-1-3"
transform="matrix(0.44157146,0,0,0.44157146,165.32591,-15.288459)">
transform="matrix(0.7694755,0,0,0.7694755,88.063526,-24.013595)">
<circle
cx="323.01764"
cy="91.036781"
r="45.160252"
id="circle15601-2-8"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="348.40515"
cy="90.286079"
r="18.045874"
id="circle15603-9-5"
style="fill:#f58235;stroke:#e76524;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10" />
<g
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-3-6"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
inkscape:transform-center-x="5.0319336"
inkscape:transform-center-y="-7.1122447">
<path
style="stroke-width:35.52600098"
style="stroke-width:35.526"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-1-1"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="stroke-width:10.64900017;paint-order:markers fill stroke"
style="stroke-width:10.649;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-9-1"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
@ -242,18 +290,18 @@
cy="89.831909"
r="18.045874"
id="circle15605-4-5"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10" />
</g>
<g
id="g4977"
transform="matrix(0.76593395,0,0,0.76593395,-410.03804,552.55532)">
transform="matrix(1.3315505,0,0,1.3315505,-748.86276,963.36536)">
<g
style="fill:#000000;stroke:#333333"
transform="matrix(1,0,0,-1,748.97747,-597.53202)"
id="g5757-5-2">
<circle
r="24.6"
style="opacity:0.12999998;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
style="opacity:0.13;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3-2"
cy="86.683884"
cx="153.12378" />
@ -265,14 +313,17 @@
cx="150.32379" />
</g>
<g
id="g14081-7"
style="fill:#ffffff;fill-opacity:1"
transform="matrix(0.50890585,0,0,0.50890585,761.72059,-784.1741)">
id="g3"
style="stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.89256609,0,0,0.89256609,577.14455,-642.11093)">
<path
style="fill:#ffffff;fill-opacity:1"
id="path14079-92"
d="m 246.8,193.5 c 0.8,0 1.8,-0.2 2.9,-0.6 v 4.4 c -0.8,0.3 -1.6,0.6 -2.3,0.7 -0.7,0.1 -1.6,0.2 -2.6,0.2 -2,0 -3.5,-0.5 -4.3,-1.5 -0.9,-1 -1.3,-2.5 -1.3,-4.5 V 185 h -2.1 v -2.4 l 2.7,-1.9 1.5,-3.6 h 3.9 v 3.5 h 4.2 v 4.5 h -4.2 v 6.7 c 0,1.1 0.5,1.7 1.6,1.7 z m 16.4,-13.2 c 0.5,0 1,0 1.5,0.1 l 0.3,0.1 -0.5,5.6 c -0.5,-0.1 -1.2,-0.2 -2,-0.2 -1.3,0 -2.3,0.3 -2.8,0.9 -0.6,0.6 -0.9,1.5 -0.9,2.6 v 8.5 h -6 v -17.3 h 4.4 l 0.9,2.8 h 0.3 c 0.5,-0.9 1.2,-1.7 2.1,-2.2 0.9,-0.7 1.8,-0.9 2.7,-0.9 z m 16.5,17.6 -0.7,-2.2 h -0.4 c -0.5,0.8 -1.2,1.4 -2.1,1.8 -0.9,0.4 -1.9,0.6 -3.1,0.6 -1.9,0 -3.4,-0.6 -4.4,-1.7 -1.1,-1.1 -1.6,-2.7 -1.6,-4.7 v -11.3 h 6 v 9.5 c 0,1.1 0.2,2 0.5,2.6 0.3,0.6 0.8,0.9 1.6,0.9 1,0 1.8,-0.4 2.2,-1.2 0.4,-0.8 0.7,-2.2 0.7,-4.1 v -7.6 h 6 v 17.3 h -4.7 z m 17,0.3 c -2.9,0 -5.1,-0.8 -6.7,-2.3 -1.6,-1.5 -2.4,-3.7 -2.4,-6.5 0,-2.9 0.7,-5.2 2.2,-6.7 1.5,-1.6 3.6,-2.3 6.3,-2.3 2.6,0 4.6,0.7 6,2 1.4,1.4 2.1,3.3 2.1,5.9 v 2.7 h -10.7 c 0,1 0.4,1.7 1.1,2.3 0.7,0.6 1.6,0.8 2.7,0.8 1,0 2,-0.1 2.9,-0.3 0.9,-0.2 1.8,-0.5 2.9,-1 v 4.3 c -0.9,0.5 -1.9,0.8 -2.9,1 -0.9,0 -2.1,0.1 -3.5,0.1 z m -0.3,-13.9 c -0.7,0 -1.3,0.2 -1.8,0.7 -0.5,0.4 -0.8,1.1 -0.8,2.1 h 5.1 c 0,-0.8 -0.3,-1.5 -0.7,-2 -0.5,-0.5 -1.1,-0.8 -1.8,-0.8 z"
inkscape:connector-curvature="0" />
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2" />
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,17 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 595.3 189.5"
viewBox="0 0 595.3 243.5"
version="1.1"
id="svg15613"
sodipodi:docname="implies_identity.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="243.5"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
@ -20,7 +22,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -35,103 +36,138 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="2.5802118"
inkscape:cx="283.57805"
inkscape:cy="52.403603"
inkscape:zoom="2.429027"
inkscape:cx="385.13364"
inkscape:cy="1.8525937"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613" />
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.24854555,-0.00840025,0.02928427,0.34639884,360.29407,-63.572716)"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,416.99569,-218.38309)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.24854555,-0.00840025,0.02928427,0.34639884,364.71509,-501.61315)"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,425.05428,-1016.8379)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2836-2-5-3-4"
transform="matrix(0.05260994,-1.5058232,-1.8099215,-0.10495108,504.07181,468.21964)">
transform="matrix(0.83959406,-2.6149926,-3.1223823,-1.0823165,465.72922,930.72173)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-2-9"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 188.45489,123.97278 c 21.58651,-6.65445 62.67468,-9.62982 83.04649,-6.88326"
d="m 224.71184,123.10964 c 5.66197,-4.30637 33.58841,-6.16746 46.78954,-6.02012"
id="path1480-1-3-1-5-7-6-7-2-0-2"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.18987119;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.18987;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2840-8-6"
transform="matrix(0.66247801,0,0,0.66247801,83.055005,39.388513)">
transform="matrix(1.207557,0,0,1.207557,-68.475217,13.473453)">
<circle
cx="270.0488"
cy="79.722664"
r="30.101343"
id="circle15601-3-4-8"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="269.64572"
cy="79.04866"
r="12.028388"
id="circle15605-5-5-8"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0"
transform="matrix(-0.3513822,-1.4076336,1.4076336,-0.3513822,196.88266,540.81931)">
transform="matrix(-0.6404953,-2.5658177,2.5658177,-0.6404953,139.00848,927.47553)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 242.7095,118.61874 c 10.03327,-2.44287 20.74677,-3.27503 28.79188,-1.52922"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-9"
transform="matrix(2.6443764,0.03046481,-0.03046481,2.6443764,-315.67131,-277.32083)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-9-6"
transform="matrix(-2.6443434,0.03320296,-0.03320296,-2.6443434,1102.4884,357.45892)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0-9"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2852-5-9"
transform="matrix(0.66247801,0,0,0.66247801,66.032965,40.194179)">
transform="matrix(1.207557,0,0,1.207557,-119.37994,-29.238026)">
<circle
cx="332.86816"
cy="190.67238"
r="30.101343"
id="circle15601-6-4-2"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="347.98178"
cy="190.68867"
r="12.028388"
id="circle15603-2-7-6"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
<circle
cx="317.7403"
cy="191.93591"
r="13.235431"
id="circle15605-7-6-6"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.8554343;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:1.85543;stroke-miterlimit:10" />
<g
transform="matrix(0.31836941,0,0,0.31836941,244.30788,162.85877)"
id="g2762-2-5-4">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-61-6-9"
r="45.160252"
cy="91.036781"
@ -141,29 +177,29 @@
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-7-3-0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10">
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-9-7-4"
inkscape:connector-curvature="0"
style="stroke-width:35.52600098" />
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-2-4-8"
inkscape:connector-curvature="0"
style="stroke-width:10.64900017;paint-order:markers fill stroke" />
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-0-5-7"
r="18.045874"
cy="89.831909"
cx="297.22122" />
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-0-5-7-6"
r="18.045874"
cy="89.1605"
@ -172,27 +208,27 @@
</g>
<g
id="g2762-1-3"
transform="matrix(0.44157146,0,0,0.44157146,176.15648,-17.470046)">
transform="matrix(0.80489119,0,0,0.80489119,75.829962,-26.115016)">
<circle
cx="323.01764"
cy="91.036781"
r="45.160252"
id="circle15601-2-8"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1" />
<g
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-3-6"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
inkscape:transform-center-x="5.0319336"
inkscape:transform-center-y="-7.1122447">
<path
style="stroke-width:35.52600098"
style="stroke-width:35.526"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-1-1"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="stroke-width:10.64900017;paint-order:markers fill stroke"
style="stroke-width:10.649;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-9-1"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
@ -204,43 +240,46 @@
cy="89.831909"
r="18.045874"
id="circle15605-4-5"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10" />
<circle
cx="347.3587"
cy="89.689011"
r="18.045874"
id="circle15605-4-5-3"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10" />
</g>
<g
id="g4977"
transform="matrix(0.76593395,0,0,0.76593395,-399.20747,550.37373)">
id="g4977-5"
transform="matrix(1.3315505,0,0,1.3315505,-750.3943,962.73218)">
<g
style="fill:#000000;stroke:#333333"
transform="matrix(1,0,0,-1,748.97747,-597.53202)"
id="g5757-5-2">
id="g5757-5-2-6">
<circle
r="24.6"
style="opacity:0.12999998;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3-2"
style="opacity:0.13;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3-2-1"
cy="86.683884"
cx="153.12378" />
<circle
r="24.6"
style="fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1-1"
id="circle3385-1-1-1"
cy="91.046249"
cx="150.32379" />
</g>
<g
id="g14081-7"
style="fill:#ffffff;fill-opacity:1"
transform="matrix(0.50890585,0,0,0.50890585,761.72059,-784.1741)">
id="g3"
style="stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.89256609,0,0,0.89256609,577.14455,-642.11093)">
<path
style="fill:#ffffff;fill-opacity:1"
id="path14079-92"
d="m 246.8,193.5 c 0.8,0 1.8,-0.2 2.9,-0.6 v 4.4 c -0.8,0.3 -1.6,0.6 -2.3,0.7 -0.7,0.1 -1.6,0.2 -2.6,0.2 -2,0 -3.5,-0.5 -4.3,-1.5 -0.9,-1 -1.3,-2.5 -1.3,-4.5 V 185 h -2.1 v -2.4 l 2.7,-1.9 1.5,-3.6 h 3.9 v 3.5 h 4.2 v 4.5 h -4.2 v 6.7 c 0,1.1 0.5,1.7 1.6,1.7 z m 16.4,-13.2 c 0.5,0 1,0 1.5,0.1 l 0.3,0.1 -0.5,5.6 c -0.5,-0.1 -1.2,-0.2 -2,-0.2 -1.3,0 -2.3,0.3 -2.8,0.9 -0.6,0.6 -0.9,1.5 -0.9,2.6 v 8.5 h -6 v -17.3 h 4.4 l 0.9,2.8 h 0.3 c 0.5,-0.9 1.2,-1.7 2.1,-2.2 0.9,-0.7 1.8,-0.9 2.7,-0.9 z m 16.5,17.6 -0.7,-2.2 h -0.4 c -0.5,0.8 -1.2,1.4 -2.1,1.8 -0.9,0.4 -1.9,0.6 -3.1,0.6 -1.9,0 -3.4,-0.6 -4.4,-1.7 -1.1,-1.1 -1.6,-2.7 -1.6,-4.7 v -11.3 h 6 v 9.5 c 0,1.1 0.2,2 0.5,2.6 0.3,0.6 0.8,0.9 1.6,0.9 1,0 1.8,-0.4 2.2,-1.2 0.4,-0.8 0.7,-2.2 0.7,-4.1 v -7.6 h 6 v 17.3 h -4.7 z m 17,0.3 c -2.9,0 -5.1,-0.8 -6.7,-2.3 -1.6,-1.5 -2.4,-3.7 -2.4,-6.5 0,-2.9 0.7,-5.2 2.2,-6.7 1.5,-1.6 3.6,-2.3 6.3,-2.3 2.6,0 4.6,0.7 6,2 1.4,1.4 2.1,3.3 2.1,5.9 v 2.7 h -10.7 c 0,1 0.4,1.7 1.1,2.3 0.7,0.6 1.6,0.8 2.7,0.8 1,0 2,-0.1 2.9,-0.3 0.9,-0.2 1.8,-0.5 2.9,-1 v 4.3 c -0.9,0.5 -1.9,0.8 -2.9,1 -0.9,0 -2.1,0.1 -3.5,0.1 z m -0.3,-13.9 c -0.7,0 -1.3,0.2 -1.8,0.7 -0.5,0.4 -0.8,1.1 -0.8,2.1 h 5.1 c 0,-0.8 -0.3,-1.5 -0.7,-2 -0.5,-0.5 -1.1,-0.8 -1.8,-0.8 z"
inkscape:connector-curvature="0" />
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2" />
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 595.3 189.5"
version="1.1"
id="svg15613"
sodipodi:docname="implies_modus_ponens.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
@ -35,46 +35,49 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="1.8244853"
inkscape:cx="211.96862"
inkscape:cy="112.21519"
inkscape:zoom="0.86947764"
inkscape:cx="245.54973"
inkscape:cy="152.39035"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613" />
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
id="g2762"
transform="matrix(0.66654507,0,0,0.66654507,131.77079,-14.613889)">
transform="matrix(0.82823324,0,0,0.82823324,14.360141,-20.311733)">
<circle
cx="323.01764"
cy="91.036781"
r="45.160252"
id="circle15601"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="348.40515"
cy="90.286079"
r="18.045874"
id="circle15603"
style="fill:#f58235;stroke:#e76524;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10" />
<g
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10"
id="g1482-7-0-1-0-3"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
inkscape:transform-center-x="5.0319336"
inkscape:transform-center-y="-7.1122447">
<path
style="stroke-width:35.52600098"
style="stroke-width:35.526"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="stroke-width:10.64900017;paint-order:markers fill stroke"
style="stroke-width:10.649;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
@ -86,127 +89,127 @@
cy="89.831909"
r="18.045874"
id="circle15605"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10" />
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,350.44446,12.901249)"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,340.62804,8.534403)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2840"
transform="translate(-38.831148,-33.837921)">
transform="matrix(1.2425765,0,0,1.2425765,-186.78191,-41.483202)">
<circle
cx="270.0488"
cy="79.722664"
r="30.101343"
id="circle15601-3"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="269.64572"
cy="79.04866"
r="12.028388"
id="circle15605-5"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2832"
transform="translate(257.61453,-145.71556)">
transform="matrix(1.2425765,0,0,1.2425765,143.27023,-178.09228)">
<circle
cx="219.86087"
cy="188.36188"
r="30.101343"
id="circle15601-3-0"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="219.79033"
cy="189.25879"
r="12.028388"
id="circle15603-3"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2836-2"
transform="matrix(2.0220259,-0.84114132,-0.84114132,-2.0220259,-4.0855609,532.96112)"
transform="matrix(2.6804081,-0.46966469,-0.46966469,-2.6804081,-294.72496,527.48459)"
style="stroke:#000000;stroke-opacity:1">
<path
d="m 272.98858,117.54664 c -0.48033,-0.62623 -0.99292,-1.23417 -1.53784,-1.82403 -0.14615,0.89085 -0.47946,1.44606 -0.67565,2.40167 1.15695,-0.26326 1.20926,-0.25561 2.21349,-0.57764 z"
id="path1478-7-9-0-19-0-0-3"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#000000;stroke-width:2.33961892;stroke-miterlimit:10;stroke-opacity:1"
style="display:inline;fill:#dddddd;stroke:#000000;stroke-width:2.33962;stroke-miterlimit:10;stroke-opacity:1"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 197.75354,105.98737 c 20.68864,-4.12884 58.0662,3.51328 73.74784,11.10215"
id="path1480-1-3-1-5-7-6-7"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#000000;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke;stroke-opacity:1" />
style="display:inline;fill:none;stroke:#000000;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2"
transform="matrix(-1.4076976,-1.6776457,1.6776457,-1.4076976,428.47788,704.20392)">
transform="matrix(-1.7014673,-1.3788099,1.3788099,-1.7014673,491.99038,673.40277)">
<path
d="m 273.17417,117.85007 c -0.41384,-0.67201 -0.86165,-1.32914 -1.34347,-1.97158 -0.23638,0.87126 -0.62466,1.38952 -0.91745,2.32009 1.1778,-0.1437 1.22905,-0.13075 2.26092,-0.34851 z"
d="m 281.08573,112.12667 c -0.51423,-0.83503 -1.07067,-1.65156 -1.66937,-2.44984 -0.29372,1.0826 -0.77619,1.72658 -1.14,2.88289 1.46351,-0.17856 1.52719,-0.16247 2.80937,-0.43305 z"
id="path1478-7-9-0-19-0-0-3-9-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.90716;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 234.09393,113.46865 c 10.00997,-2.47499 26.52553,-1.74229 37.40745,3.62087"
d="m 236.89024,105.1174 c 12.43815,-3.07536 28.5953,-0.59991 42.11692,6.06422"
id="path1480-1-3-1-5-7-6-7-2-9"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.64537;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-5"
transform="matrix(1.4076976,-1.6776457,-1.6776457,-1.4076976,155.05972,704.28174)">
transform="matrix(2.1555734,-1.6609264,-1.6609264,-2.1555734,-133.02569,799.22564)">
<path
d="m 273.17417,117.85007 c -0.41384,-0.67201 -0.86165,-1.32914 -1.34347,-1.97158 -0.23638,0.87126 -0.62466,1.38952 -0.91745,2.32009 1.1778,-0.1437 1.22905,-0.13075 2.26092,-0.34851 z"
id="path1478-7-9-0-19-0-0-3-9-8-5"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 234.09393,113.46865 c 10.00997,-2.47499 26.52553,-1.74229 37.40745,3.62087"
id="path1480-1-3-1-5-7-6-7-2-9-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2852"
transform="translate(-41.570624,-38.985969)">
transform="matrix(1.2425765,0,0,1.2425765,-202.15846,-89.904721)">
<circle
cx="332.86816"
cy="190.67238"
r="30.101343"
id="circle15601-6"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="347.98178"
cy="190.68867"
r="12.028388"
id="circle15603-2"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
<circle
cx="317.7403"
cy="191.93591"
r="13.235431"
id="circle15605-7"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.8554343;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:1.85543;stroke-miterlimit:10" />
<g
transform="matrix(0.31836941,0,0,0.31836941,244.30788,162.85877)"
id="g2762-2">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-61"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.52979565;stroke-miterlimit:10"
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-8"
r="18.045874"
cy="90.286079"
@ -216,23 +219,23 @@
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10">
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-9"
inkscape:connector-curvature="0"
style="stroke-width:35.52600098" />
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-2"
inkscape:connector-curvature="0"
style="stroke-width:10.64900017;paint-order:markers fill stroke" />
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-0"
r="18.045874"
cy="89.831909"
@ -242,7 +245,7 @@
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,353.72506,-312.14428)"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,343.90864,-316.51113)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
</svg>

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,488 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 595.3 300"
version="1.1"
id="svg15613"
sodipodi:docname="implies_modus_ponens_impostors.svg"
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="300"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="1.7189162"
inkscape:cx="279.24572"
inkscape:cy="-85.228122"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
id="g2762"
transform="matrix(0.82823324,0,0,0.82823324,14.360141,-20.311733)">
<circle
cx="323.01764"
cy="91.036781"
r="45.160252"
id="circle15601"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="348.40515"
cy="90.286079"
r="18.045874"
id="circle15603"
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10" />
<g
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10"
id="g1482-7-0-1-0-3"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
inkscape:transform-center-x="5.0319336"
inkscape:transform-center-y="-7.1122447">
<path
style="stroke-width:35.526"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="stroke-width:10.649;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
sodipodi:nodetypes="cc" />
</g>
<circle
cx="297.22122"
cy="89.831909"
r="18.045874"
id="circle15605"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10" />
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,340.62804,8.534403)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2840"
transform="matrix(1.2425765,0,0,1.2425765,-186.78191,-41.483202)">
<circle
cx="270.0488"
cy="79.722664"
r="30.101343"
id="circle15601-3"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="269.64572"
cy="79.04866"
r="12.028388"
id="circle15605-5"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2832"
transform="matrix(1.2425765,0,0,1.2425765,143.27023,-178.09228)">
<circle
cx="219.86087"
cy="188.36188"
r="30.101343"
id="circle15601-3-0"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="219.79033"
cy="189.25879"
r="12.028388"
id="circle15603-3"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2836-2"
transform="matrix(2.6804081,-0.46966469,-0.46966469,-2.6804081,-294.72496,527.48459)"
style="stroke:#000000;stroke-opacity:1">
<path
d="m 272.98858,117.54664 c -0.48033,-0.62623 -0.99292,-1.23417 -1.53784,-1.82403 -0.14615,0.89085 -0.47946,1.44606 -0.67565,2.40167 1.15695,-0.26326 1.20926,-0.25561 2.21349,-0.57764 z"
id="path1478-7-9-0-19-0-0-3"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#000000;stroke-width:2.33962;stroke-miterlimit:10;stroke-opacity:1"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 197.75354,105.98737 c 20.68864,-4.12884 58.0662,3.51328 73.74784,11.10215"
id="path1480-1-3-1-5-7-6-7"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#000000;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2"
transform="matrix(-1.7014673,-1.3788099,1.3788099,-1.7014673,491.99038,673.40277)">
<path
d="m 281.08573,112.12667 c -0.51423,-0.83503 -1.07067,-1.65156 -1.66937,-2.44984 -0.29372,1.0826 -0.77619,1.72658 -1.14,2.88289 1.46351,-0.17856 1.52719,-0.16247 2.80937,-0.43305 z"
id="path1478-7-9-0-19-0-0-3-9-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.90716;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 236.89024,105.1174 c 12.43815,-3.07536 28.5953,-0.59991 42.11692,6.06422"
id="path1480-1-3-1-5-7-6-7-2-9"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.64537;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-5"
transform="matrix(2.1555734,-1.6609264,-1.6609264,-2.1555734,-133.02569,799.22564)">
<path
d="m 273.17417,117.85007 c -0.41384,-0.67201 -0.86165,-1.32914 -1.34347,-1.97158 -0.23638,0.87126 -0.62466,1.38952 -0.91745,2.32009 1.1778,-0.1437 1.22905,-0.13075 2.26092,-0.34851 z"
id="path1478-7-9-0-19-0-0-3-9-8-5"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 234.09393,113.46865 c 10.00997,-2.47499 26.52553,-1.74229 37.40745,3.62087"
id="path1480-1-3-1-5-7-6-7-2-9-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2852"
transform="matrix(1.2425765,0,0,1.2425765,-202.15846,-81.865976)">
<circle
cx="332.86816"
cy="190.67238"
r="30.101343"
id="circle15601-6"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="347.98178"
cy="190.68867"
r="12.028388"
id="circle15603-2"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
<circle
cx="317.7403"
cy="191.93591"
r="13.235431"
id="circle15605-7"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.85543;stroke-miterlimit:10" />
<g
transform="matrix(0.31836941,0,0,0.31836941,244.30788,162.85877)"
id="g2762-2">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-61"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-8"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-9"
inkscape:connector-curvature="0"
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-2"
inkscape:connector-curvature="0"
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-0"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
</g>
<g
id="g2852-7"
transform="matrix(1.2104613,0,0,1.2104613,-181.76945,24.557158)">
<g
id="g6341"
transform="matrix(1.079224,0,0,1.079224,160.64582,0.19357971)">
<g
id="g6366"
transform="translate(-47.708018,-44.492415)">
<g
transform="matrix(0.66654507,0,0,0.66654507,143.69955,104.70349)"
id="g2762-3">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-67"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-5"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-35"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-6"
inkscape:connector-curvature="0"
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-29"
inkscape:connector-curvature="0"
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-1"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
<g
transform="matrix(0.45464976,0,0,0.45464976,162.73658,64.774262)"
id="g6346">
<circle
cx="470.26962"
cy="221.28979"
r="30.101343"
id="circle15601-6-7"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="484.021"
cy="220.28334"
r="14.255853"
id="circle15603-2-0"
style="fill:#f58235;stroke:#e76524;stroke-width:1.99848;stroke-miterlimit:10" />
<circle
cx="455.42941"
cy="219.65796"
r="13.175672"
id="circle3379"
style="fill:#fce600;stroke:#ffdd00;stroke-width:3.21358;stroke-miterlimit:10" />
</g>
</g>
</g>
</g>
<g
id="g2852-7-3"
transform="matrix(1.2104613,0,0,1.2104613,-298.15323,-14.458112)">
<g
id="g6341-6"
transform="matrix(1.079224,0,0,1.079224,160.64582,0.19357971)">
<g
id="g6366-1"
transform="translate(-28.501189,-38.915086)">
<g
transform="matrix(0.66654507,0,0,0.66654507,143.69955,104.70349)"
id="g2762-3-0">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-67-6"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-5-3"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-35-2"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-6-0"
inkscape:connector-curvature="0"
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-29-6"
inkscape:connector-curvature="0"
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-1-1"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
<g
transform="matrix(0.45464976,0,0,0.45464976,162.73658,64.774262)"
id="g6346-5">
<circle
cx="470.26962"
cy="221.28979"
r="30.101343"
id="circle15601-6-7-5"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="490.74954"
cy="222.15768"
r="9.7182932"
id="circle15603-2-0-4"
style="fill:#f58235;stroke:#e76524;stroke-width:1.36238;stroke-miterlimit:10" />
<circle
cx="450.37964"
cy="221.65024"
r="9.7182932"
id="circle15603-2-0-4-3"
style="fill:#5599ff;stroke:#003380;stroke-width:1.36238;stroke-miterlimit:10"
inkscape:transform-center-x="-28.427788"
inkscape:transform-center-y="2.3264515" />
<circle
cx="470.62698"
cy="221.88269"
r="9.3447008"
id="circle3379-7"
style="fill:#ff2a2a;stroke:#aa0000;stroke-width:1.08547;stroke-miterlimit:10;stroke-dasharray:none" />
</g>
</g>
</g>
</g>
<g
id="g2852-7-3-6"
transform="matrix(1.2104613,0,0,1.2104613,-375.63472,79.57029)">
<g
id="g6341-6-5"
transform="matrix(1.079224,0,0,1.079224,183.89541,-6.1876678)">
<g
id="g6366-1-6"
transform="translate(-28.501189,-38.915086)">
<g
transform="matrix(0.66654507,0,0,0.66654507,143.69955,104.70349)"
id="g2762-3-0-9">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-67-6-3"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-5-3-7"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-35-2-4"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-6-0-5"
inkscape:connector-curvature="0"
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-29-6-2"
inkscape:connector-curvature="0"
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-1-1-5"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
<g
transform="matrix(0.45464976,0,0,0.45464976,162.73658,64.774262)"
id="g6346-5-4">
<circle
cx="470.26962"
cy="221.28979"
r="30.101343"
id="circle15601-6-7-5-7"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="485.49475"
cy="220.96518"
r="14.470243"
id="circle15603-2-0-4-4"
style="fill:#f58235;stroke:#e76524;stroke-width:2.02854;stroke-miterlimit:10" />
<circle
cx="455.53287"
cy="220.55573"
r="13.913976"
id="circle3379-7-4"
style="fill:#71c837;stroke:#338000;stroke-width:1.61623;stroke-miterlimit:10;stroke-dasharray:none" />
</g>
</g>
</g>
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,343.90864,-316.51113)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 595.3 189.5"
version="1.1"
id="svg15613"
sodipodi:docname="implies_modus_ponens_zoom.svg"
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="0.86947764"
inkscape:cx="245.54973"
inkscape:cy="152.39035"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,340.62804,8.534403)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2852"
transform="matrix(2.2930505,0,0,2.2930505,-472.19128,-348.01688)">
<circle
cx="332.86816"
cy="190.67238"
r="30.101343"
id="circle15601-6"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="347.98178"
cy="190.68867"
r="12.028388"
id="circle15603-2"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
<circle
cx="317.7403"
cy="191.93591"
r="13.235431"
id="circle15605-7"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.85543;stroke-miterlimit:10" />
<g
transform="matrix(0.31836941,0,0,0.31836941,244.30788,162.85877)"
id="g2762-2">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-61"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-8"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-9"
inkscape:connector-curvature="0"
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-2"
inkscape:connector-curvature="0"
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-0"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,343.90864,-316.51113)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -1,17 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 595.3 189.5"
viewBox="0 0 595.3 300"
version="1.1"
id="svg15613"
sodipodi:docname="implies_universal_property.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="300"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
@ -20,7 +22,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@ -35,46 +36,49 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="2.5802118"
inkscape:cx="398.08948"
inkscape:cy="85.603448"
inkscape:zoom="1.7189162"
inkscape:cx="279.53661"
inkscape:cy="-85.228123"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613" />
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
id="g2762"
transform="matrix(0.66654507,0,0,0.66654507,142.95022,-17.817425)">
transform="matrix(0.82823324,0,0,0.82823324,14.360141,-20.311733)">
<circle
cx="323.01764"
cy="91.036781"
r="45.160252"
id="circle15601"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="348.40515"
cy="90.286079"
r="18.045874"
id="circle15603"
style="fill:#f58235;stroke:#e76524;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10" />
<g
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10"
id="g1482-7-0-1-0-3"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
inkscape:transform-center-x="5.0319336"
inkscape:transform-center-y="-7.1122447">
<path
style="stroke-width:35.52600098"
style="stroke-width:35.526"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="stroke-width:10.64900017;paint-order:markers fill stroke"
style="stroke-width:10.649;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
@ -86,111 +90,180 @@
cy="89.831909"
r="18.045874"
id="circle15605"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10" />
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,361.62389,9.6977119)"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,340.62804,8.534403)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2840"
transform="translate(-24.530683,-39.433343)">
transform="matrix(1.2425765,0,0,1.2425765,-186.78191,-41.483202)">
<circle
cx="270.0488"
cy="79.722664"
r="30.101343"
id="circle15601-3"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="269.64572"
cy="79.04866"
r="12.028388"
id="circle15605-5"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2832"
transform="matrix(1.2425765,0,0,1.2425765,143.27023,-178.09228)">
<circle
cx="219.86087"
cy="188.36188"
r="30.101343"
id="circle15601-3-0"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="219.79033"
cy="189.25879"
r="12.028388"
id="circle15603-3"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2836-2"
transform="matrix(2.0220259,-0.84114132,-0.84114132,-2.0220259,7.0938807,529.75757)"
transform="matrix(2.6804081,-0.46966469,-0.46966469,-2.6804081,-294.72496,527.48459)"
style="stroke:#000000;stroke-opacity:1">
<path
d="m 272.98858,117.54664 c -0.48033,-0.62623 -0.99292,-1.23417 -1.53784,-1.82403 -0.14615,0.89085 -0.47946,1.44606 -0.67565,2.40167 1.15695,-0.26326 1.20926,-0.25561 2.21349,-0.57764 z"
id="path1478-7-9-0-19-0-0-3"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#000000;stroke-width:2.33961892;stroke-miterlimit:10;stroke-opacity:1"
style="display:inline;fill:#dddddd;stroke:#000000;stroke-width:2.33962;stroke-miterlimit:10;stroke-opacity:1"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 197.75354,105.98737 c 20.68864,-4.12884 58.0662,3.51328 73.74784,11.10215"
id="path1480-1-3-1-5-7-6-7"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#000000;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke;stroke-opacity:1" />
style="display:inline;fill:none;stroke:#000000;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2"
transform="matrix(-1.4076976,-1.6776457,1.6776457,-1.4076976,439.65731,699.00038)">
transform="matrix(-1.7014673,-1.3788099,1.3788099,-1.7014673,491.99038,673.40277)">
<path
d="m 273.17417,117.85007 c -0.41384,-0.67201 -0.86165,-1.32914 -1.34347,-1.97158 -0.23638,0.87126 -0.62466,1.38952 -0.91745,2.32009 1.1778,-0.1437 1.22905,-0.13075 2.26092,-0.34851 z"
d="m 281.08573,112.12667 c -0.51423,-0.83503 -1.07067,-1.65156 -1.66937,-2.44984 -0.29372,1.0826 -0.77619,1.72658 -1.14,2.88289 1.46351,-0.17856 1.52719,-0.16247 2.80937,-0.43305 z"
id="path1478-7-9-0-19-0-0-3-9-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.90716;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 234.09393,113.46865 c 10.00997,-2.47499 26.52553,-1.74229 37.40745,3.62087"
d="m 236.89024,105.1174 c 12.43815,-3.07536 28.5953,-0.59991 42.11692,6.06422"
id="path1480-1-3-1-5-7-6-7-2-9"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.64537;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-5"
transform="matrix(1.4076976,-1.6776457,-1.6776457,-1.4076976,166.23915,701.0782)">
transform="matrix(2.1555734,-1.6609264,-1.6609264,-2.1555734,-133.02569,799.22564)">
<path
d="m 273.17417,117.85007 c -0.41384,-0.67201 -0.86165,-1.32914 -1.34347,-1.97158 -0.23638,0.87126 -0.62466,1.38952 -0.91745,2.32009 1.1778,-0.1437 1.22905,-0.13075 2.26092,-0.34851 z"
id="path1478-7-9-0-19-0-0-3-9-8-5"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 234.09393,113.46865 c 10.00997,-2.47499 26.52553,-1.74229 37.40745,3.62087"
id="path1480-1-3-1-5-7-6-7-2-9-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-5-7"
transform="matrix(-0.46845114,-2.8625425,2.6558398,-0.54755485,87.503723,946.37707)"
style="stroke:#8a6f91"
inkscape:transform-center-x="1.8445307"
inkscape:transform-center-y="63.250812">
<path
d="m 273.17417,117.85007 c -0.41384,-0.67201 -0.86165,-1.32914 -1.34347,-1.97158 -0.23638,0.87126 -0.62466,1.38952 -0.91745,2.32009 1.1778,-0.1437 1.22905,-0.13075 2.26092,-0.34851 z"
id="path1478-7-9-0-19-0-0-3-9-8-5-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#8a6f91;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 234.09393,113.46865 c 10.00997,-2.47499 26.52553,-1.74229 37.40745,3.62087"
id="path1480-1-3-1-5-7-6-7-2-9-4-6"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#8a6f91;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-5-7-8"
transform="matrix(-1.7859287,-2.285619,-2.2035661,1.580379,1068.9738,514.57542)"
style="stroke:#8a6f91">
<path
d="m 273.17417,117.85007 c -0.41384,-0.67201 -0.86165,-1.32914 -1.34347,-1.97158 -0.23638,0.87126 -0.62466,1.38952 -0.91745,2.32009 1.1778,-0.1437 1.22905,-0.13075 2.26092,-0.34851 z"
id="path1478-7-9-0-19-0-0-3-9-8-5-8-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#8a6f91;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 234.09393,113.46865 c 10.00997,-2.47499 26.52553,-1.74229 37.40745,3.62087"
id="path1480-1-3-1-5-7-6-7-2-9-4-6-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#8a6f91;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-5-7-8-3"
transform="matrix(-0.70021938,-2.8148336,-2.6561788,0.545908,805.3063,798.82231)"
style="stroke:#8a6f91">
<path
d="m 273.17417,117.85007 c -0.41384,-0.67201 -0.86165,-1.32914 -1.34347,-1.97158 -0.23638,0.87126 -0.62466,1.38952 -0.91745,2.32009 1.1778,-0.1437 1.22905,-0.13075 2.26092,-0.34851 z"
id="path1478-7-9-0-19-0-0-3-9-8-5-8-8-1"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#8a6f91;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 243.72495,112.59207 c 10.00997,-2.47499 16.89451,-0.86571 27.77643,4.49745"
id="path1480-1-3-1-5-7-6-7-2-9-4-6-4-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#8a6f91;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2852"
transform="translate(-30.391184,-42.189506)">
transform="matrix(1.2425765,0,0,1.2425765,-202.15846,-81.865976)">
<circle
cx="332.86816"
cy="190.67238"
r="30.101343"
id="circle15601-6"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="347.98178"
cy="190.68867"
r="12.028388"
id="circle15603-2"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622;stroke-miterlimit:10" />
<circle
cx="317.7403"
cy="191.93591"
r="13.235431"
id="circle15605-7"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.8554343;stroke-miterlimit:10" />
style="fill:#39bced;stroke:#008dd2;stroke-width:1.85543;stroke-miterlimit:10" />
<g
transform="matrix(0.31836941,0,0,0.31836941,244.30788,162.85877)"
id="g2762-2">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-61"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.52979565;stroke-miterlimit:10"
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-8"
r="18.045874"
cy="90.286079"
@ -200,23 +273,23 @@
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10">
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-9"
inkscape:connector-curvature="0"
style="stroke-width:35.52600098" />
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-2"
inkscape:connector-curvature="0"
style="stroke-width:10.64900017;paint-order:markers fill stroke" />
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-0"
r="18.045874"
cy="89.831909"
@ -224,129 +297,245 @@
</g>
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,364.90449,-315.34782)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10" />
<g
id="g2836-2-5-2-5-6"
transform="matrix(-1.7222891,-1.3527114,1.3527114,-1.7222891,686.1591,646.17246)">
<path
d="m 273.17417,117.85007 c -0.41384,-0.67201 -0.86165,-1.32914 -1.34347,-1.97158 -0.23638,0.87126 -0.62466,1.38952 -0.91745,2.32009 1.1778,-0.1437 1.22905,-0.13075 2.26092,-0.34851 z"
id="path1478-7-9-0-19-0-0-3-9-8-5-6"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 246.68898,112.48701 c 10.00997,-2.47499 13.93048,-0.76065 24.8124,4.60251"
id="path1480-1-3-1-5-7-6-7-2-9-4-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-9"
transform="matrix(-2.0220259,-0.84114132,0.84114132,-2.0220259,728.79875,526.60439)">
<path
d="m 272.98858,117.54664 c -0.48033,-0.62623 -0.99292,-1.23417 -1.53784,-1.82403 -0.14615,0.89085 -0.47946,1.44606 -0.67565,2.40167 1.15695,-0.26326 1.20926,-0.25561 2.21349,-0.57764 z"
id="path1478-7-9-0-19-0-0-3-5"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33961892;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 216.53483,114.27497 c 20.68864,-4.12884 39.28491,-4.77432 54.96655,2.81455"
id="path1480-1-3-1-5-7-6-7-0"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416177;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g6341"
transform="translate(68.841037,-14.943092)">
id="g2852-7"
transform="matrix(1.2104613,0,0,1.2104613,-181.76945,24.557158)">
<g
id="g6366"
transform="translate(-28.501189,-38.915086)">
id="g6341"
transform="matrix(1.079224,0,0,1.079224,160.64582,0.19357971)">
<g
transform="matrix(0.66654507,0,0,0.66654507,143.69955,104.70349)"
id="g2762-3">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16543818;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-67"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.52979565;stroke-miterlimit:10"
id="circle15603-5"
r="18.045874"
cy="90.286079"
cx="348.40515" />
id="g6366"
transform="translate(-47.708018,-44.492415)">
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-35"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-6"
inkscape:connector-curvature="0"
style="stroke-width:35.52600098" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-29"
inkscape:connector-curvature="0"
style="stroke-width:10.64900017;paint-order:markers fill stroke" />
transform="matrix(0.66654507,0,0,0.66654507,143.69955,104.70349)"
id="g2762-3">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-67"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-5"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-35"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-6"
inkscape:connector-curvature="0"
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-29"
inkscape:connector-curvature="0"
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-1"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
<g
transform="matrix(0.45464976,0,0,0.45464976,162.73658,64.774262)"
id="g6346">
<circle
cx="470.26962"
cy="221.28979"
r="30.101343"
id="circle15601-6-7"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="484.021"
cy="220.28334"
r="14.255853"
id="circle15603-2-0"
style="fill:#f58235;stroke:#e76524;stroke-width:1.99848;stroke-miterlimit:10" />
<circle
cx="455.42941"
cy="219.65796"
r="13.175672"
id="circle3379"
style="fill:#fce600;stroke:#ffdd00;stroke-width:3.21358;stroke-miterlimit:10" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.52979565;stroke-miterlimit:10"
id="circle15605-1"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
<g
transform="matrix(0.45464976,0,0,0.45464976,162.73658,64.774262)"
id="g6346">
<circle
cx="470.26962"
cy="221.28979"
r="30.101343"
id="circle15601-6-7"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="485.38324"
cy="221.30609"
r="12.028388"
id="circle15603-2-0"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
<circle
cx="456.44937"
cy="220.33838"
r="13.175672"
id="circle3379"
style="fill:#fce600;stroke:#ffdd00;stroke-width:3.21357846;stroke-miterlimit:10" />
</g>
</g>
</g>
<g
id="g2832-4"
transform="translate(267.30844,-148.84957)">
<circle
cx="219.86087"
cy="188.36188"
r="30.101343"
id="circle15601-3-0-8"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10990715;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="219.79033"
cy="189.25879"
r="12.028388"
id="circle15603-3-7"
style="fill:#f58235;stroke:#e76524;stroke-width:1.68622279;stroke-miterlimit:10" />
id="g2852-7-3"
transform="matrix(1.2104613,0,0,1.2104613,-298.15323,-14.458112)">
<g
id="g6341-6"
transform="matrix(1.079224,0,0,1.079224,160.64582,0.19357971)">
<g
id="g6366-1"
transform="translate(-28.501189,-38.915086)">
<g
transform="matrix(0.66654507,0,0,0.66654507,143.69955,104.70349)"
id="g2762-3-0">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-67-6"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-5-3"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-35-2"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-6-0"
inkscape:connector-curvature="0"
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-29-6"
inkscape:connector-curvature="0"
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-1-1"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
<g
transform="matrix(0.45464976,0,0,0.45464976,162.73658,64.774262)"
id="g6346-5">
<circle
cx="470.26962"
cy="221.28979"
r="30.101343"
id="circle15601-6-7-5"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="490.74954"
cy="222.15768"
r="9.7182932"
id="circle15603-2-0-4"
style="fill:#f58235;stroke:#e76524;stroke-width:1.36238;stroke-miterlimit:10" />
<circle
cx="450.37964"
cy="221.65024"
r="9.7182932"
id="circle15603-2-0-4-3"
style="fill:#5599ff;stroke:#003380;stroke-width:1.36238;stroke-miterlimit:10"
inkscape:transform-center-x="-28.427788"
inkscape:transform-center-y="2.3264515" />
<circle
cx="470.62698"
cy="221.88269"
r="9.3447008"
id="circle3379-7"
style="fill:#ff2a2a;stroke:#aa0000;stroke-width:1.08547;stroke-miterlimit:10;stroke-dasharray:none" />
</g>
</g>
</g>
</g>
<g
id="g2852-7-3-6"
transform="matrix(1.2104613,0,0,1.2104613,-375.63472,79.57029)">
<g
id="g6341-6-5"
transform="matrix(1.079224,0,0,1.079224,183.89541,-6.1876678)">
<g
id="g6366-1-6"
transform="translate(-28.501189,-38.915086)">
<g
transform="matrix(0.66654507,0,0,0.66654507,143.69955,104.70349)"
id="g2762-3-0-9">
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1"
id="circle15601-67-6-3"
r="45.160252"
cy="91.036781"
cx="323.01764" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15603-5-3-7"
r="18.045874"
cy="90.286079"
cx="348.40515" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,263.02754,33.201428)"
id="g1482-7-0-1-0-3-35-2-4"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-6-0-5"
inkscape:connector-curvature="0"
style="stroke-width:35.526" />
<path
sodipodi:nodetypes="cc"
d="M 256.00808,84.703489 C 283.39188,81.262654 297.41031,82.245264 317.498,86.173"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
id="path1480-1-3-1-5-7-29-6-2"
inkscape:connector-curvature="0"
style="stroke-width:10.649;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.5298;stroke-miterlimit:10"
id="circle15605-1-1-5"
r="18.045874"
cy="89.831909"
cx="297.22122" />
</g>
<g
transform="matrix(0.45464976,0,0,0.45464976,162.73658,64.774262)"
id="g6346-5-4">
<circle
cx="470.26962"
cy="221.28979"
r="30.101343"
id="circle15601-6-7-5-7"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="485.49475"
cy="220.96518"
r="14.470243"
id="circle15603-2-0-4-4"
style="fill:#f58235;stroke:#e76524;stroke-width:2.02854;stroke-miterlimit:10" />
<circle
cx="455.53287"
cy="220.55573"
r="13.913976"
id="circle3379-7-4"
style="fill:#71c837;stroke:#338000;stroke-width:1.61623;stroke-miterlimit:10;stroke-dasharray:none" />
</g>
</g>
</g>
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.18443188,-0.00623336,0.02173024,0.2570434,343.90864,-316.51113)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 595.3 177"
version="1.1"
id="svg3397"
sodipodi:docname="isomorphism.svg"
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata3403">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3401" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1077"
inkscape:window-height="1169"
id="namedview3399"
showgrid="false"
inkscape:zoom="4.9049061"
inkscape:cx="302.96197"
inkscape:cy="92.764263"
inkscape:window-x="12"
inkscape:window-y="10"
inkscape:window-maximized="0"
inkscape:current-layer="svg3397"
inkscape:document-rotation="0"
inkscape:pagecheckerboard="0"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1" />
<g
id="g9442"
transform="matrix(0.75024244,0,0,0.75024244,93.915747,57.00838)"
style="paint-order:fill markers stroke">
<g
id="g2445-3-1"
transform="matrix(2.4458076,0,0,2.2485166,-117.57238,88.039232)"
style="fill:#000000;fill-opacity:0.112903;stroke:none;stroke-width:1.32404;stroke-miterlimit:4;stroke-dasharray:none;paint-order:fill markers stroke" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:30.0097px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.750243"
x="123.81618"
y="18.474348"
id="text9288"><tspan
sodipodi:role="line"
id="tspan9286"
x="123.81618"
y="18.474348"
style="stroke-width:0.750243" /></text>
<g
style="display:inline;fill:none;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10"
id="g1482-7-0-7"
transform="matrix(0.30649304,-0.00570877,0.02962,0.42748892,223.86935,-14.267937)">
<path
style="fill:none;stroke-width:16.0981"
inkscape:connector-curvature="0"
id="path1478-7-9-4"
d="m 300.63709,231.37428 c 5.07924,-1.92282 10.35434,-3.62219 15.75885,-5.21028 -4.09679,-3.38762 -8.45059,-6.65265 -13.06188,-9.79637 -0.92392,5.24208 -1.39222,9.36303 -2.69697,15.00665 z" />
<path
style="fill:none;stroke-width:10.649;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-4"
d="M 153.43841,83.202404 C 192.22734,72.827888 281.27803,76.046336 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
<g
style="display:inline;fill:none;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10"
id="g1482-7-0-7-9"
transform="matrix(-0.30649304,0.00570877,-0.02962,-0.42748892,389.9249,188.75507)">
<path
style="fill:none;stroke-width:16.0981"
inkscape:connector-curvature="0"
id="path1478-7-9-4-0"
d="m 300.63709,231.37428 c 5.07924,-1.92282 10.35434,-3.62219 15.75885,-5.21028 -4.09679,-3.38762 -8.45059,-6.65265 -13.06188,-9.79637 -0.92392,5.24208 -1.39222,9.36303 -2.69697,15.00665 z" />
<path
style="fill:none;stroke-width:10.649;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-4-8"
d="M 153.43841,83.202404 C 192.22734,72.827888 281.27803,76.046336 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
<g
id="g8876-5"
transform="matrix(1.151878,0,0,1.151878,-115.64358,-203.89879)">
<circle
cx="414.65698"
cy="258.30109"
r="18.663952"
id="circle3371-8"
style="opacity:0.13;stroke:#000000;stroke-width:4.55218;stroke-miterlimit:10" />
<circle
fill="#f58235"
stroke="#e76524"
cx="411.01526"
cy="252.00392"
r="18.663952"
id="circle3385-3"
style="stroke-width:4.55218;stroke-miterlimit:10" />
</g>
<g
id="g8876-5-7"
transform="matrix(1.151878,0,0,1.151878,-217.52032,-203.99776)">
<circle
cx="414.65698"
cy="258.30109"
r="18.663952"
id="circle3371-8-8"
style="opacity:0.13;stroke:#000000;stroke-width:4.55218;stroke-miterlimit:10" />
<circle
fill="#f58235"
stroke="#e76524"
cx="411.01526"
cy="252.00392"
r="18.663952"
id="circle3385-3-8"
style="stroke-width:4.55218;stroke-miterlimit:10" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,216 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 595.3 243.5"
version="1.1"
id="svg15613"
sodipodi:docname="join_bigger.svg"
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="243.5"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="0.98592535"
inkscape:cx="261.6831"
inkscape:cy="0.50713779"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,345.63635,-219.02677)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,353.69494,-1017.4816)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2840-8-6-4-6"
transform="matrix(1.0308094,0,0,1.0308094,85.7608,4.679292)">
<circle
cx="268.85449"
cy="78.12973"
r="30.101343"
id="circle15601-3-4-8-4-4"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="268.79797"
cy="78.230927"
id="circle15603-3-3"
style="fill:#f58235;stroke:#e76524;stroke-width:1.73512;stroke-miterlimit:10"
r="12.377214" />
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.39401889,-0.0133169,0.0464243,0.54914557,367.95028,-715.83761)"
id="g1482-7-0-1-0-3-6-3"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.39401889,-0.0133169,0.0464243,0.54914557,374.95893,-1410.2624)"
id="g1482-7-0-1-0-3-6-7-8"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2836-2-5-3-4-8"
transform="matrix(1.1364655,-2.1009586,-2.4958289,-1.4252044,240.85771,859.70565)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-2-9-31"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 247.15232,124.0955 c 5.66197,-4.30637 11.14793,-7.15332 24.34906,-7.00598"
id="path1480-1-3-1-5-7-6-7-2-0-2-8"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.18987;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g1"
transform="rotate(19.767656,241.22527,76.567041)">
<path
d="m 338.74744,73.583151 c 0.49564,1.775071 0.90981,3.569087 1.24283,5.382465 -1.90537,-1.257255 -3.44342,-1.670573 -5.54435,-2.958964 2.17482,-1.330985 2.23597,-1.42366 4.30152,-2.423501 z"
id="path1478-7-9-0-19-0-0-3-9-2-9-3-6"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#b3b3b3;stroke-width:5.3922;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 245.16516,186.0523 c 12.91811,-6.82933 80.13839,-82.0546 92.06386,-109.169346"
id="path1480-1-3-1-5-7-6-7-2-0-2-0-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:2.74233;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-9"
transform="matrix(2.2573245,0.02600576,-0.02600576,2.2573245,-283.87547,-193.34266)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-9-6"
transform="matrix(-2.2572963,0.0283431,-0.02834309,-2.2572963,926.71119,348.52572)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0-9"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2762-1-3"
transform="matrix(0.68708094,0,0,0.68708094,49.09149,21.159955)">
<circle
cx="323.01764"
cy="91.036781"
r="45.160252"
id="circle15601-2-8"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="296.58279"
cy="90.125244"
r="15.152136"
id="circle15605-4-5"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.12414;stroke-miterlimit:10" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:3.6343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 315.45667,82.492357 7.01005,15.410025 6.8754,-16.113297"
id="path1"
sodipodi:nodetypes="ccc" />
<circle
cx="349.48251"
cy="92.27533"
id="circle15603-3-1"
style="fill:#f58235;stroke:#e76524;stroke-width:2.21173;stroke-miterlimit:10"
r="15.777013" />
</g>
<g
id="g2840-8-6-4"
transform="matrix(1.0308094,1.3875912e-8,0,1.0308094,86.787187,4.880727)">
<circle
cx="268.85449"
cy="78.12973"
r="30.101343"
id="circle15601-3-4-8-4"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="268.79797"
cy="78.230927"
id="circle15603-3"
style="fill:#f58235;stroke:#e76524;stroke-width:1.73512;stroke-miterlimit:10"
r="12.377214" />
</g>
<g
id="g2840-8-6-3"
transform="matrix(1.0502254,0,0,1.0502254,-58.782595,81.71042)">
<circle
cx="270.0488"
cy="79.722664"
r="30.101343"
id="circle15601-3-4-8-3"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="269.64572"
cy="79.04866"
r="12.028388"
id="circle15605-5-5-8-3"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -0,0 +1,262 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 595.3 243.5"
version="1.1"
id="svg15613"
sodipodi:docname="join_bigger_true.svg"
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="243.5"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="2.788618"
inkscape:cx="281.86005"
inkscape:cy="178.40378"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,345.63635,-219.02677)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.45304586,-0.01531187,0.05337901,0.63141168,353.69494,-1017.4816)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2840-8-6-4-6"
transform="matrix(1.0308094,0,0,1.0308094,85.7608,44.679292)">
<circle
cx="268.85449"
cy="78.12973"
r="30.101343"
id="circle15601-3-4-8-4-4"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="268.79797"
cy="78.230927"
id="circle15603-3-3"
style="fill:#f58235;stroke:#e76524;stroke-width:1.73512;stroke-miterlimit:10"
r="12.377214" />
</g>
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.39401889,-0.0133169,0.0464243,0.54914557,367.95028,-715.83761)"
id="g1482-7-0-1-0-3-6-3"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.39401889,-0.0133169,0.0464243,0.54914557,374.95893,-1410.2624)"
id="g1482-7-0-1-0-3-6-7-8"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2836-2-5-3-4-8"
transform="matrix(0.33902881,-2.3644535,-2.8348557,-0.47324672,499.81948,776.97352)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-2-9-31"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 220.4435,123.30468 c 5.66197,-4.30637 37.85675,-6.3625 51.05788,-6.21516"
id="path1480-1-3-1-5-7-6-7-2-0-2-8"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.18987;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-3-4-0-9"
transform="matrix(1.6835991,-1.2574857,-1.4660635,-2.0600207,45.175254,731.88516)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-2-9-3-6"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#b3b3b3;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 204.0295,125.24883 c 6.08452,-2.91641 53.56187,-9.80978 67.47188,-8.15931"
id="path1480-1-3-1-5-7-6-7-2-0-2-0-4"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.18987;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2840-8-6-3"
transform="matrix(1.0502254,0,0,1.0502254,-58.782595,121.71042)">
<circle
cx="270.0488"
cy="79.722664"
r="30.101343"
id="circle15601-3-4-8-3"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="269.64572"
cy="79.04866"
r="12.028388"
id="circle15605-5-5-8-3"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-9-8"
transform="matrix(2.2998428,0.02649557,-0.02649557,2.2998428,-302.37055,-244.29189)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2-6"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0-0"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-9-6-4"
transform="matrix(-2.2998141,0.02887697,-0.02887697,-2.2998141,931.01828,307.78293)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2-8-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0-9-8"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2762-1-3-8"
transform="matrix(0.70002258,0,0,0.70002258,38.122328,-25.815472)">
<circle
cx="323.01764"
cy="91.036781"
r="45.160252"
id="circle15601-2-8-9"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="296.58279"
cy="90.125244"
r="15.152136"
id="circle15605-4-5-7"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.12414;stroke-miterlimit:10" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:3.6343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 315.45667,80.007549 7.01005,15.410025 6.8754,-16.113297"
id="path1-7"
sodipodi:nodetypes="ccc" />
<g
id="g4977-8"
transform="matrix(0.62688359,0,0,0.62688359,-214.00144,521.79348)">
<g
style="fill:#000000;stroke:#333333"
transform="matrix(1,0,0,-1,748.97747,-597.53202)"
id="g5757-5-2-5">
<circle
r="24.6"
style="opacity:0.13;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3-2-0"
cy="86.683884"
cx="153.12378" />
<circle
r="24.6"
style="fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1-1-9"
cy="91.046249"
cx="150.32379" />
</g>
<g
id="g3-6"
style="stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.89256609,0,0,0.89256609,577.14455,-642.11093)">
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2-3" />
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3-8" />
</g>
</g>
</g>
<g
id="g4977"
transform="matrix(1.214234,0,0,1.214234,-731.35278,873.90767)">
<g
style="fill:#000000;stroke:#333333"
transform="matrix(1,0,0,-1,748.97747,-597.53202)"
id="g5757-5-2">
<circle
r="24.6"
style="opacity:0.13;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3-2"
cy="86.683884"
cx="153.12378" />
<circle
r="24.6"
style="fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1-1"
cy="91.046249"
cx="150.32379" />
</g>
<g
id="g3"
style="stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.89256609,0,0,0.89256609,577.14455,-642.11093)">
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2" />
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,234 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 595.3 243.5"
version="1.1"
id="svg15613"
sodipodi:docname="join_true.svg"
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="243.5"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="0.6971545"
inkscape:cx="251.0204"
inkscape:cy="225.91836"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.39401889,-0.0133169,0.0464243,0.54914557,300.60367,-190.48995)"
id="g1482-7-0-1-0-3-6"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
inkscape:transform-center-y="-7.1122447"
inkscape:transform-center-x="5.0319336"
transform="matrix(0.39401889,-0.0133169,0.0464243,0.54914557,307.61232,-884.91475)"
id="g1482-7-0-1-0-3-6-7"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10" />
<g
id="g2836-2-5-3-4"
transform="matrix(0.33902881,-2.3644535,-2.8348557,-0.47324672,522.04387,774.98058)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-2-9"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 220.4435,123.30468 c 5.66197,-4.30637 37.85675,-6.3625 51.05788,-6.21516"
id="path1480-1-3-1-5-7-6-7-2-0-2"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.18987;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-3-4-0"
transform="matrix(1.2600281,-2.0292635,-2.4061666,-1.5718558,299.13645,810.20049)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-2-9-3"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#b3b3b3;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 208.87642,124.89516 c 6.08452,-2.91641 48.71495,-9.45611 62.62496,-7.80564"
id="path1480-1-3-1-5-7-6-7-2-0-2-0"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#b3b3b3;stroke-width:1.18987;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2840-8-6"
transform="matrix(1.0502254,0,0,1.0502254,-37.237583,121.75842)">
<circle
cx="270.0488"
cy="79.722664"
r="30.101343"
id="circle15601-3-4-8"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:2.10991;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="269.64572"
cy="79.04866"
r="12.028388"
id="circle15605-5-5-8"
style="fill:#39bced;stroke:#008dd2;stroke-width:1.68622;stroke-miterlimit:10" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-9"
transform="matrix(2.2998428,0.02649557,-0.02649557,2.2998428,-280.82554,-244.24389)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2836-2-5-2-6-2-1-8-0-9-6"
transform="matrix(-2.2998141,0.02887697,-0.02887697,-2.2998141,952.56333,307.83093)">
<path
d="m 273.21167,117.26782 c -0.57835,-0.53701 -1.18546,-1.05059 -1.82141,-1.54094 0.005,0.90274 -0.23069,1.50591 -0.26419,2.48087 1.09658,-0.45317 1.14943,-0.45438 2.0856,-0.93993 z"
id="path1478-7-9-0-19-0-0-3-9-8-1-5-7-8-9-2-8"
inkscape:connector-curvature="0"
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:2.33962;stroke-miterlimit:10"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
d="m 258.51116,118.25902 c 3.29725,-1.32608 7.78168,-1.34656 12.99022,-1.1695"
id="path1480-1-3-1-5-7-6-7-2-9-5-4-2-5-6-0-9"
inkscape:connector-curvature="0"
style="display:inline;fill:none;stroke:#838383;stroke-width:1.32416;stroke-miterlimit:10;stroke-dasharray:none;paint-order:markers fill stroke" />
</g>
<g
id="g2762-1-3"
transform="matrix(0.70002258,0,0,0.70002258,59.667344,-25.767466)">
<circle
cx="323.01764"
cy="91.036781"
r="45.160252"
id="circle15601-2-8"
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.16544;stroke-miterlimit:10;stroke-opacity:1" />
<circle
cx="296.58279"
cy="90.125244"
r="15.152136"
id="circle15605-4-5"
style="fill:#39bced;stroke:#008dd2;stroke-width:2.12414;stroke-miterlimit:10" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:3.6343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 315.45667,80.007549 7.01005,15.410025 6.8754,-16.113297"
id="path1"
sodipodi:nodetypes="ccc" />
<g
id="g4977-8"
transform="matrix(0.62688359,0,0,0.62688359,-214.00144,521.79348)">
<g
style="fill:#000000;stroke:#333333"
transform="matrix(1,0,0,-1,748.97747,-597.53202)"
id="g5757-5-2-5">
<circle
r="24.6"
style="opacity:0.13;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3-2-0"
cy="86.683884"
cx="153.12378" />
<circle
r="24.6"
style="fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1-1-9"
cy="91.046249"
cx="150.32379" />
</g>
<g
id="g3-6"
style="stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.89256609,0,0,0.89256609,577.14455,-642.11093)">
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2-3" />
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3-8" />
</g>
</g>
</g>
<g
id="g4977"
transform="matrix(1.214234,0,0,1.214234,-709.80777,873.95567)">
<g
style="fill:#000000;stroke:#333333"
transform="matrix(1,0,0,-1,748.97747,-597.53202)"
id="g5757-5-2">
<circle
r="24.6"
style="opacity:0.13;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3-2"
cy="86.683884"
cx="153.12378" />
<circle
r="24.6"
style="fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1-1"
cy="91.046249"
cx="150.32379" />
</g>
<g
id="g3"
style="stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.89256609,0,0,0.89256609,577.14455,-642.11093)">
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2" />
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 595.3 189.5"
version="1.1"
id="svg15613"
sodipodi:docname="lattice_false.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
@ -35,17 +35,20 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1376"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="2.8284271"
inkscape:cx="78.032145"
inkscape:cy="99.374913"
inkscape:zoom="1.3313492"
inkscape:cx="240.73324"
inkscape:cy="128.81669"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613" />
inkscape:current-layer="svg15613"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-4-49-9-9-9-3-3-6"
@ -76,12 +79,6 @@
id="circle15603-3-6"
style="fill:#dedede;fill-opacity:1;stroke:none;stroke-width:2.88746858;stroke-miterlimit:10"
transform="rotate(16.448378)" />
<circle
cx="307.20721"
cy="166.04706"
r="20.97629"
id="circle15601-9-4-6"
style="fill:#dedede;fill-opacity:1;stroke:none;stroke-width:3.81297445;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<circle
cx="363.52084"
cy="33.900589"
@ -304,15 +301,37 @@
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
<circle
cx="301.16708"
cy="158.26009"
r="20.97629"
id="circle15601-9-4"
style="fill:#ffffff;fill-opacity:1;stroke:#b7b7b7;stroke-width:3.81297445;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:#808285;stroke-width:0.45678383"
id="path14085-7-5"
d="m 289.39956,156.72598 h -1.56711 v 5.0089 h -2.51687 v -5.0089 h -0.94976 v -1.14238 l 1.04473,-0.57118 v -0.13182 c 0,-0.87875 0.18995,-1.53781 0.56986,-1.93325 0.3799,-0.39544 1.04475,-0.57119 1.89953,-0.57119 0.33241,0 0.66483,0.0439 0.94976,0.0879 0.28492,0.0439 0.66483,0.13181 1.04473,0.26362 l -0.52236,1.49388 c -0.33242,-0.0878 -0.61735,-0.13181 -0.90227,-0.13181 -0.18996,0 -0.33242,0.0439 -0.4274,0.17575 -0.0949,0.13181 -0.14246,0.30757 -0.14246,0.52726 v 0.17575 h 1.5671 v 1.7575 z m 5.79354,5.0089 -0.47489,-0.87876 h -0.0475 c -0.33241,0.39545 -0.66483,0.65907 -1.04473,0.79088 -0.33241,0.13181 -0.80729,0.21969 -1.37715,0.21969 -0.71232,0 -1.23468,-0.17575 -1.61459,-0.57119 -0.37991,-0.39544 -0.61736,-0.92269 -0.61736,-1.6257 0,-0.703 0.28493,-1.27418 0.8073,-1.62569 0.52238,-0.3515 1.32967,-0.57118 2.3744,-0.61512 h 1.18721 v -0.0879 c 0,-0.57119 -0.28492,-0.83481 -0.90227,-0.83481 -0.52237,0 -1.23469,0.17575 -2.04199,0.48331 l -0.71232,-1.53782 c 0.85478,-0.39543 1.94701,-0.61512 3.22918,-0.61512 0.94977,0 1.66209,0.21969 2.18446,0.65906 0.52238,0.43938 0.75981,1.05451 0.75981,1.80144 v 4.43771 z m -1.89952,-1.53782 c 0.28493,0 0.56985,-0.0878 0.8073,-0.26362 0.23744,-0.17575 0.33241,-0.39545 0.33241,-0.70301 v -0.52726 l -0.56986,0.0439 c -0.85478,0.0439 -1.23468,0.30757 -1.23468,0.83482 -0.0475,0.43937 0.18995,0.61512 0.66483,0.61512 z m 7.88301,1.53782 h -2.51686 v -9.31479 h 2.51686 z m 7.40815,-2.06508 c 0,0.74694 -0.28493,1.27419 -0.8073,1.6257 -0.52236,0.3515 -1.28218,0.57119 -2.32691,0.57119 -0.52237,0 -0.99726,-0.0439 -1.42464,-0.0879 -0.37991,-0.0439 -0.8073,-0.13182 -1.2347,-0.30757 v -1.84538 c 0.37991,0.17576 0.8073,0.30757 1.28218,0.39544 0.47488,0.0879 0.90227,0.17575 1.23468,0.17575 0.56986,0 0.8073,-0.13181 0.8073,-0.3515 0,-0.13181 -0.0949,-0.21969 -0.23744,-0.30757 -0.14246,-0.0879 -0.61734,-0.26362 -1.32966,-0.52725 -0.66483,-0.26363 -1.13971,-0.52725 -1.42463,-0.87875 -0.28494,-0.30756 -0.37991,-0.74695 -0.37991,-1.23026 0,-0.61512 0.28493,-1.14238 0.80729,-1.49388 0.52237,-0.35149 1.28218,-0.52724 2.23194,-0.52724 0.47488,0 0.94977,0.0439 1.37717,0.13181 0.42738,0.0879 0.85478,0.21968 1.32965,0.43937 l -0.66483,1.49388 c -0.33241,-0.13181 -0.71231,-0.26362 -1.04473,-0.3515 -0.33243,-0.0879 -0.66485,-0.13181 -0.90229,-0.13181 -0.42738,0 -0.61734,0.0879 -0.61734,0.26362 0,0.13182 0.0949,0.21969 0.23745,0.30756 0.14246,0.0879 0.56984,0.26363 1.23469,0.48333 0.52237,0.17574 0.90227,0.39543 1.1397,0.57118 0.23745,0.17576 0.4274,0.39544 0.56986,0.65906 0.0949,0.2197 0.14247,0.52726 0.14247,0.92269 z m 4.93876,2.19689 c -1.23469,0 -2.18445,-0.30756 -2.84929,-0.9227 -0.66483,-0.61512 -0.99724,-1.44994 -0.99724,-2.54837 0,-1.14239 0.33241,-2.02114 0.94975,-2.63627 0.61735,-0.61512 1.51963,-0.92268 2.65934,-0.92268 1.09223,0 1.94701,0.26362 2.56435,0.79087 0.61734,0.52726 0.90228,1.31813 0.90228,2.28476 v 1.0545 h -4.51136 c 0,0.39544 0.18995,0.65906 0.42738,0.87876 0.28494,0.21969 0.66484,0.30756 1.13972,0.30756 0.42739,0 0.85478,-0.0439 1.23468,-0.13181 0.37991,-0.0879 0.75981,-0.21969 1.23469,-0.39545 v 1.66964 c -0.3799,0.17575 -0.80729,0.30756 -1.23469,0.39544 -0.42738,0.0879 -0.90227,0.17575 -1.51961,0.17575 z m -0.14247,-5.44827 c -0.28492,0 -0.56984,0.0879 -0.7598,0.26362 -0.18995,0.17575 -0.33242,0.43938 -0.33242,0.83482 h 2.18445 c 0,-0.30757 -0.0949,-0.57119 -0.28493,-0.79088 -0.23744,-0.17575 -0.47487,-0.30756 -0.8073,-0.30756 z"
inkscape:connector-curvature="0" />
<g
id="g2"
transform="matrix(0.92846351,0,0,0.92846351,29.878318,-118.40167)">
<g
id="g4359-3"
transform="translate(-90.257071,300.22114)">
<circle
cx="387.48297"
cy="2.0252681"
r="24.6"
id="circle3367-5"
style="opacity:0.13;stroke:#000000;stroke-width:6;stroke-miterlimit:10" />
</g>
<circle
style="fill:#ffffff;stroke:#ececec;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1"
r="24.6"
cy="297.44226"
cx="292.62634" />
<g
id="g3-4"
style="stroke:#000000;stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.87383207,0,0,-0.87383207,-20.678915,251.21394)">
<path
style="fill:#ffffff;stroke:#000000;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2-8" />
<path
style="fill:#ffffff;stroke:#000000;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3-1" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="595.29999"
height="177"
version="1.1"
id="svg8680"
sodipodi:docname="lattice_meet_join.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8686">
<rdf:RDF>
@ -36,103 +36,108 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1376"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview8682"
showgrid="false"
inkscape:zoom="9.1575744"
inkscape:cx="274.28136"
inkscape:cy="73.841718"
inkscape:zoom="3.2376915"
inkscape:cx="403.68269"
inkscape:cy="209.87176"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8680" />
inkscape:current-layer="svg8680"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<path
style="opacity:0.13999999;stroke:#000000;stroke-width:1.62162149;stroke-miterlimit:10"
d="M 225.96846,66.158188 A 15.777238,15.470067 0 0 1 210.19122,81.628255 15.777238,15.470067 0 0 1 194.41399,66.158188 15.777238,15.470067 0 0 1 210.19122,50.688121 15.777238,15.470067 0 0 1 225.96846,66.158188 Z"
style="opacity:0.14;stroke:#000000;stroke-width:2.81268;stroke-miterlimit:10"
d="M 194.49117,42.540508 A 27.365349,26.832566 0 0 1 167.12582,69.373076 27.365349,26.832566 0 0 1 139.76048,42.540508 27.365349,26.832566 0 0 1 167.12582,15.707942 27.365349,26.832566 0 0 1 194.49117,42.540508 Z"
id="ellipse8632" />
<path
style="fill:#cee7cc;stroke:#808285;stroke-width:1.62162149;stroke-miterlimit:10"
d="M 224.79485,65.729904 A 15.777238,15.470067 0 0 1 209.01761,81.199971 15.777238,15.470067 0 0 1 193.24037,65.729904 15.777238,15.470067 0 0 1 209.01761,50.259837 15.777238,15.470067 0 0 1 224.79485,65.729904 Z"
style="fill:#cee7cc;stroke:#808285;stroke-width:2.81268;stroke-miterlimit:10"
d="M 192.45557,41.797657 A 27.365349,26.832566 0 0 1 165.09022,68.630224 27.365349,26.832566 0 0 1 137.72487,41.797657 27.365349,26.832566 0 0 1 165.09022,14.96509 27.365349,26.832566 0 0 1 192.45557,41.797657 Z"
id="ellipse8634" />
<path
style="opacity:0.13999999;stroke:#000000;stroke-width:1.62162149;stroke-miterlimit:10"
d="m 188.19057,102.31749 a 16.023029,15.710926 0 0 1 -16.02303,15.71093 16.023029,15.710926 0 0 1 -16.02303,-15.71093 16.023029,15.710926 0 0 1 16.02303,-15.710926 16.023029,15.710926 0 0 1 16.02303,15.710926 z"
style="opacity:0.14;stroke:#000000;stroke-width:2.81268;stroke-miterlimit:10"
d="M 128.96607,105.25819 A 27.791669,27.250332 0 0 1 101.17439,132.50854 27.791669,27.250332 0 0 1 73.382719,105.25819 27.791669,27.250332 0 0 1 101.17439,78.007868 27.791669,27.250332 0 0 1 128.96607,105.25819 Z"
id="ellipse8636" />
<path
style="fill:#caebfc;stroke:#808285;stroke-width:1.62162149;stroke-miterlimit:10"
d="m 186.6073,101.32719 a 16.023029,15.710926 0 0 1 -16.02303,15.71092 16.023029,15.710926 0 0 1 -16.02303,-15.71092 16.023029,15.710926 0 0 1 16.02303,-15.710929 16.023029,15.710926 0 0 1 16.02303,15.710929 z"
style="fill:#caebfc;stroke:#808285;stroke-width:2.81268;stroke-miterlimit:10"
d="M 126.21992,103.54054 A 27.791669,27.250332 0 0 1 98.428242,130.79086 27.791669,27.250332 0 0 1 70.636566,103.54054 27.791669,27.250332 0 0 1 98.428242,76.290198 27.791669,27.250332 0 0 1 126.21992,103.54054 Z"
id="ellipse8638" />
<path
style="opacity:0.13999999;stroke:#000000;stroke-width:1.62162149;stroke-miterlimit:10"
d="m 264.6476,102.85265 a 16.432407,16.112358 0 0 1 -16.43241,16.11236 16.432407,16.112358 0 0 1 -16.4324,-16.11236 16.432407,16.112358 0 0 1 16.4324,-16.112355 16.432407,16.112358 0 0 1 16.43241,16.112355 z"
style="opacity:0.14;stroke:#000000;stroke-width:2.81268;stroke-miterlimit:10"
d="m 261.57949,106.18642 a 28.501728,27.946609 0 0 1 -28.50174,27.94661 28.501728,27.946609 0 0 1 -28.50172,-27.94661 28.501728,27.946609 0 0 1 28.50172,-27.946603 28.501728,27.946609 0 0 1 28.50174,27.946603 z"
id="ellipse8640" />
<path
style="fill:#f8f7cb;stroke:#808285;stroke-width:1.62162149;stroke-miterlimit:10"
d="m 263.03722,101.80891 a 16.432407,16.112358 0 0 1 -16.43241,16.11235 16.432407,16.112358 0 0 1 -16.4324,-16.11235 16.432407,16.112358 0 0 1 16.4324,-16.112362 16.432407,16.112358 0 0 1 16.43241,16.112362 z"
style="fill:#f8f7cb;stroke:#808285;stroke-width:2.81268;stroke-miterlimit:10"
d="m 258.78631,104.37607 a 28.501728,27.946609 0 0 1 -28.50174,27.9466 28.501728,27.946609 0 0 1 -28.50171,-27.9466 28.501728,27.946609 0 0 1 28.50171,-27.946608 28.501728,27.946609 0 0 1 28.50174,27.946608 z"
id="ellipse8642" />
<path
d="m 242.29209,86.858106 c 0,0 -0.13427,-0.228528 -0.3965,-0.632427 a 47.436386,47.436386 0 0 0 -1.13634,-1.660257 c -0.48336,-0.677365 -1.08373,-1.423508 -1.74411,-2.217329 -0.6875,-0.791082 -1.432,-1.602988 -2.22829,-2.383109 a 38.490892,38.490892 0 0 0 -2.42558,-2.174857 c -0.80916,-0.64421 -1.58572,-1.238 -2.26638,-1.70684 -0.68092,-0.468566 -1.26896,-0.839308 -1.70711,-1.09058 -0.0575,-0.02137 -0.0874,-0.04521 -0.11728,-0.06905 -0.0301,-0.02384 -0.057,-0.0211 -0.0871,-0.04494 l -0.06,-0.04768 1.58135,-2.69028 c -1.35282,-0.07755 -2.72454,-0.07261 -4.0494,0.116182 -0.64859,0.09289 -1.2917,0.239216 -1.90495,0.409105 -0.61051,0.196743 -1.19087,0.417325 -1.70849,0.712165 a 8.6095523,8.6095523 0 0 1 1.37008,1.017692 c 0.39814,0.389923 0.76916,0.782587 1.08565,1.181005 0.639,0.849721 1.14483,1.739995 1.59915,2.662604 l 1.58134,-2.690554 c 0,0 0.0301,0.02384 0.057,0.0211 0.0274,-0.0027 0.0301,0.02384 0.0603,0.04795 0.0299,0.02384 0.0869,0.04494 0.11673,0.0685 0.40828,0.227706 0.96946,0.601189 1.65012,1.070029 0.6538,0.471579 1.42734,1.038516 2.20938,1.685466 0.78204,0.646949 1.5997,1.370897 2.36585,2.127178 0.76614,0.756282 1.5079,1.541609 2.16554,2.308851 0.65763,0.767242 1.23087,1.516125 1.71122,2.166911 0.48062,0.650786 0.84123,1.20594 1.10374,1.609838 a 18.156236,18.156236 0 0 1 0.39622,0.632427 z m -63.63259,0.204141 c 0,0 0.11536,-0.225788 0.27237,-0.58968 0.091,-0.196469 0.2066,-0.421983 0.3195,-0.674351 0.14002,-0.254834 0.30498,-0.538988 0.46719,-0.849447 0.70313,-1.24759 1.7589,-2.822903 3.01746,-4.282854 1.25855,-1.459679 2.67109,-2.745631 3.82004,-3.6307 0.27867,-0.240585 0.56502,-0.401432 0.7941,-0.583652 0.22935,-0.182494 0.43403,-0.335668 0.61653,-0.432943 0.15564,-0.09508 0.23209,-0.155915 0.23209,-0.155915 l 1.77918,2.551628 a 22.979175,22.979175 0 0 1 3.48273,-5.723352 c -2.36584,-0.374031 -4.89172,-0.410748 -7.52007,-0.08851 l 1.77918,2.551628 -0.25922,0.158107 c -0.18002,0.124129 -0.38472,0.277303 -0.64119,0.462263 -0.22935,0.18222 -0.51296,0.36992 -0.81876,0.612971 -1.1736,0.914115 -2.66507,2.234045 -3.94828,3.723043 -1.31034,1.491464 -2.41545,3.125416 -3.14076,4.428631 -0.18935,0.312925 -0.35156,0.623658 -0.49158,0.878492 -0.1403,0.254834 -0.25319,0.506928 -0.34417,0.703671 -0.18167,0.392938 -0.2973,0.618726 -0.2973,0.618726 z"
d="m 222.80423,78.44416 c 0,0 -0.23289,-0.39638 -0.68772,-1.096937 a 82.277599,82.277599 0 0 0 -1.97096,-2.879686 c -0.83838,-1.174877 -1.87971,-2.469044 -3.02514,-3.845918 -1.19245,-1.372117 -2.48377,-2.780353 -3.86492,-4.133459 a 66.761792,66.761792 0 0 0 -4.20713,-3.772253 c -1.40348,-1.117374 -2.7504,-2.147294 -3.931,-2.960483 -1.18104,-0.812724 -2.20098,-1.455769 -2.96095,-1.891597 -0.0997,-0.03702 -0.15159,-0.07841 -0.20342,-0.119763 -0.0522,-0.04138 -0.0989,-0.03656 -0.15107,-0.07795 l -0.10407,-0.08268 2.74282,-4.666246 c -2.34644,-0.134508 -4.72567,-0.12594 -7.02361,0.201516 -1.12497,0.161116 -2.24044,0.414916 -3.30411,0.709586 -1.05892,0.341247 -2.06554,0.723843 -2.96334,1.235238 a 14.933121,14.933121 0 0 1 2.37638,1.765169 c 0.69057,0.676314 1.3341,1.357388 1.88304,2.048431 1.10833,1.473825 1.98569,3.017995 2.7737,4.61824 l 2.74281,-4.66672 c 0,0 0.0522,0.04138 0.0989,0.03656 0.0475,-0.0045 0.0522,0.04139 0.10459,0.08313 0.0518,0.04138 0.15072,0.07795 0.20247,0.118808 0.70815,0.394951 1.6815,1.042753 2.8621,1.855951 1.134,0.817945 2.47569,1.801286 3.83213,2.923409 1.35644,1.122122 2.77465,2.377797 4.10353,3.689555 1.32885,1.311758 2.61543,2.673896 3.75609,4.004664 1.14065,1.330768 2.13492,2.629692 2.96808,3.758464 0.83363,1.12878 1.4591,2.091683 1.91442,2.79224 a 31.49168,31.49168 0 0 1 0.68724,1.096937 z m -110.36965,0.354076 c 0,0 0.2001,-0.391623 0.47243,-1.022789 0.15784,-0.340769 0.35834,-0.731919 0.55416,-1.169647 0.24286,-0.442004 0.52899,-0.934862 0.81033,-1.473352 1.21959,-2.163921 3.0508,-4.896276 5.23375,-7.428535 2.18293,-2.531786 4.63295,-4.762252 6.6258,-6.29739 0.48334,-0.417291 0.98001,-0.696273 1.37734,-1.012329 0.39781,-0.316538 0.75282,-0.582213 1.06937,-0.750937 0.26995,-0.164914 0.40256,-0.270433 0.40256,-0.270433 l 3.08595,4.425758 a 39.856986,39.856986 0 0 1 6.04073,-9.927056 c -4.10351,-0.648751 -8.4846,-0.712436 -13.04343,-0.153519 l 3.08596,4.425757 -0.44961,0.274234 c -0.31224,0.215295 -0.66729,0.480979 -1.11214,0.801783 -0.3978,0.316056 -0.88971,0.641626 -1.42012,1.063192 -2.03559,1.58551 -4.62252,3.874906 -6.84822,6.457555 -2.27277,2.586915 -4.18957,5.420977 -5.44761,7.681385 -0.32842,0.542756 -0.60978,1.08172 -0.85264,1.523723 -0.24334,0.442004 -0.43915,0.87926 -0.59696,1.220511 -0.3151,0.681538 -0.51566,1.073169 -0.51566,1.073169 z"
id="path8648"
style="fill:#808285;stroke-width:0.2740148"
style="fill:#808285;stroke-width:0.475274"
inkscape:connector-curvature="0" />
<path
style="opacity:0.13999999;stroke:#000000;stroke-width:1.62162149;stroke-miterlimit:10"
d="M 406.38722,63.818054 A 15.777238,15.470067 0 0 1 390.60999,79.288121 15.777238,15.470067 0 0 1 374.83275,63.818054 15.777238,15.470067 0 0 1 390.60999,48.347987 15.777238,15.470067 0 0 1 406.38722,63.818054 Z"
style="opacity:0.14;stroke:#000000;stroke-width:2.81267;stroke-miterlimit:10"
d="m 399.61386,109.32964 a 27.365349,26.832566 0.75297202 0 1 27.71558,-26.470623 27.365349,26.832566 0.75297202 0 1 27.01038,27.189863 27.365349,26.832566 0.75297202 0 1 -27.7156,26.47062 27.365349,26.832566 0.75297202 0 1 -27.01036,-27.18986 z"
id="ellipse8650" />
<path
style="fill:#cee7cc;stroke:#808285;stroke-width:1.62162149;stroke-miterlimit:10"
d="M 405.21361,63.389763 A 15.777238,15.470067 0 0 1 389.43637,78.85983 15.777238,15.470067 0 0 1 373.65913,63.389763 15.777238,15.470067 0 0 1 389.43637,47.919696 15.777238,15.470067 0 0 1 405.21361,63.389763 Z"
style="fill:#cee7cc;stroke:#808285;stroke-width:2.81267;stroke-miterlimit:10"
d="M 401.63951,110.0992 A 27.365349,26.832566 0.75297202 0 1 429.35513,83.628564 27.365349,26.832566 0.75297202 0 1 456.3655,110.81844 27.365349,26.832566 0.75297202 0 1 428.6499,137.28908 27.365349,26.832566 0.75297202 0 1 401.63951,110.0992 Z"
id="ellipse8652" />
<path
style="opacity:0.13999999;stroke:#000000;stroke-width:1.62162149;stroke-miterlimit:10"
d="M 368.60906,99.977081 A 16.023029,15.710926 0 0 1 352.58603,115.68801 16.023029,15.710926 0 0 1 336.563,99.977081 16.023029,15.710926 0 0 1 352.58603,84.266155 16.023029,15.710926 0 0 1 368.60906,99.977081 Z"
style="opacity:0.14;stroke:#000000;stroke-width:2.81267;stroke-miterlimit:10"
d="M 465.95797,47.478949 A 27.791669,27.250332 0.75297202 0 1 494.10533,20.596187 27.791669,27.250332 0.75297202 0 1 521.53651,48.209393 27.791669,27.250332 0.75297202 0 1 493.38913,75.09215 27.791669,27.250332 0.75297202 0 1 465.95797,47.478949 Z"
id="ellipse8654" />
<path
style="fill:#caebfc;stroke:#808285;stroke-width:1.62162149;stroke-miterlimit:10"
d="M 367.02605,98.986778 A 16.023029,15.710926 0 0 1 351.00302,114.6977 16.023029,15.710926 0 0 1 334.97999,98.986778 16.023029,15.710926 0 0 1 351.00302,83.275852 16.023029,15.710926 0 0 1 367.02605,98.986778 Z"
style="fill:#caebfc;stroke:#808285;stroke-width:2.81267;stroke-miterlimit:10"
d="M 468.68085,49.232544 A 27.791669,27.250332 0.75297202 0 1 496.82825,22.349796 27.791669,27.250332 0.75297202 0 1 524.2594,49.962992 27.791669,27.250332 0.75297202 0 1 496.11201,76.845748 27.791669,27.250332 0.75297202 0 1 468.68085,49.232544 Z"
id="ellipse8656" />
<path
style="opacity:0.13999999;stroke:#000000;stroke-width:1.62162149;stroke-miterlimit:10"
d="M 445.06635,100.5125 A 16.432407,16.112358 0 0 1 428.63394,116.62486 16.432407,16.112358 0 0 1 412.20153,100.5125 16.432407,16.112358 0 0 1 428.63394,84.400139 16.432407,16.112358 0 0 1 445.06635,100.5125 Z"
style="opacity:0.14;stroke:#000000;stroke-width:2.81267;stroke-miterlimit:10"
d="m 334.24609,46.081191 a 28.501728,27.946609 0.75297202 0 1 28.86652,-27.569645 28.501728,27.946609 0.75297202 0 1 28.13203,28.318752 28.501728,27.946609 0.75297202 0 1 -28.86655,27.569649 28.501728,27.946609 0.75297202 0 1 -28.132,-28.318756 z"
id="ellipse8658" />
<path
style="fill:#f8f7cb;stroke:#808285;stroke-width:1.62162149;stroke-miterlimit:10"
d="M 443.45597,99.468781 A 16.432407,16.112358 0 0 1 427.02356,115.58114 16.432407,16.112358 0 0 1 410.59115,99.468781 16.432407,16.112358 0 0 1 427.02356,83.356422 16.432407,16.112358 0 0 1 443.45597,99.468781 Z"
style="fill:#f8f7cb;stroke:#808285;stroke-width:2.81267;stroke-miterlimit:10"
d="M 336.1369,46.654475 A 28.501728,27.946609 0.75297202 0 1 365.00344,19.084833 28.501728,27.946609 0.75297202 0 1 393.13545,47.403584 28.501728,27.946609 0.75297202 0 1 364.26894,74.973225 28.501728,27.946609 0.75297202 0 1 336.1369,46.654475 Z"
id="ellipse8660" />
<path
d="m 373.57692,67.966639 c 0,0 -0.24551,0.106867 -0.68229,0.32115 a 48.77221,48.77221 0 0 0 -1.80165,0.936582 c -0.7371,0.401708 -1.55586,0.910001 -2.42914,1.472281 -0.87357,0.588862 -1.77452,1.231151 -2.64781,1.926874 a 38.521855,38.521855 0 0 0 -2.45682,2.141152 c -0.7371,0.722853 -1.4194,1.418576 -1.96524,2.03429 -0.54584,0.615437 -0.98261,1.150865 -1.28294,1.552296 -0.0274,0.05344 -0.0548,0.08029 -0.0819,0.106867 -0.0274,0.02683 -0.0274,0.05372 -0.0548,0.08056 l -0.0543,0.05344 -2.56588,-1.820007 c -0.21839,1.311437 -0.35484,2.649727 -0.30032,3.961159 0.0274,0.642295 0.10906,1.284856 0.21839,1.900298 0.13646,0.615709 0.30032,1.20457 0.54584,1.739993 a 8.524882,8.524882 0 0 1 1.17388,-1.231423 c 0.43651,-0.347997 0.87329,-0.669147 1.31007,-0.936859 0.92809,-0.53515 1.88358,-0.936581 2.8662,-1.284579 l -2.56588,-1.820012 c 0,0 0.0274,-0.02683 0.0274,-0.05344 0,-0.02683 0.0274,-0.02683 0.0545,-0.05372 0.0274,-0.02656 0.0548,-0.08029 0.0819,-0.106867 0.27291,-0.37485 0.70969,-0.88342 1.25553,-1.498862 0.54584,-0.589128 1.20101,-1.284856 1.93811,-1.980579 0.7371,-0.695995 1.55586,-1.418576 2.40201,-2.087995 0.84616,-0.668871 1.71972,-1.311161 2.56588,-1.873164 0.84616,-0.56228 1.66519,-1.043997 2.37489,-1.445428 0.7097,-0.401437 1.31006,-0.696001 1.74685,-0.909735 0.43678,-0.214278 0.68229,-0.321416 0.68229,-0.321416 z m 31.11797,1.606006 c 0,0 0.2184,0.13372 0.57324,0.320868 0.19127,0.107144 0.40938,0.241136 0.65518,0.374856 0.24579,0.160572 0.51871,0.347997 0.81903,0.53515 1.201,0.802862 2.70233,1.98058 4.06693,3.345722 1.36487,1.364871 2.53874,2.863733 3.33037,4.068303 0.21839,0.294292 0.35486,0.588856 0.51844,0.82972 0.16386,0.240858 0.30032,0.454864 0.38226,0.642289 0.0819,0.160573 0.13645,0.240859 0.13645,0.240859 l -2.75686,1.498862 a 23.512682,23.512682 0 0 1 5.4866,3.934306 c 0.60037,-2.274871 0.87328,-4.737168 0.79163,-7.333461 l -2.75714,1.498862 -0.13646,-0.267717 c -0.10906,-0.187425 -0.24551,-0.401431 -0.40938,-0.669142 -0.16386,-0.240858 -0.32744,-0.535151 -0.54584,-0.856572 -0.81903,-1.231146 -2.02004,-2.810294 -3.41203,-4.202018 -1.392,-1.418575 -2.94813,-2.649726 -4.20366,-3.479446 -0.30033,-0.214006 -0.60065,-0.401431 -0.84616,-0.561727 -0.2458,-0.160849 -0.49159,-0.294569 -0.6823,-0.401708 a 19.728534,19.728534 0 0 1 -0.60064,-0.347997 z"
d="m 456.61242,102.88247 c 0,0 0.42821,-0.17973 1.19062,-0.54142 a 84.594563,84.594563 0 0 0 3.14602,-1.58327 c 1.28753,-0.6799 2.71912,-1.542788 4.2465,-2.49806 1.52848,-1.001368 3.10567,-2.094776 4.6361,-3.281487 a 66.815498,66.815498 0 0 0 4.30975,-3.657478 c 1.29483,-1.236864 2.49403,-2.427932 3.45474,-3.483337 0.96071,-1.054933 1.73042,-1.973586 2.26042,-2.662955 0.0487,-0.09207 0.097,-0.138018 0.14449,-0.183478 0.048,-0.04593 0.0487,-0.09256 0.097,-0.138481 l 0.0954,-0.09145 4.40862,3.214988 c 0.40864,-2.269494 0.67581,-4.587423 0.61115,-6.863121 -0.0336,-1.114555 -0.15992,-2.230856 -0.33545,-3.300734 -0.22266,-1.07095 -0.49341,-2.095967 -0.90702,-3.030164 a 14.786262,14.786262 0 0 1 -2.06396,2.108938 c -0.765,0.593592 -1.52983,1.140623 -2.29346,1.594969 -1.62183,0.906974 -3.28811,1.581408 -5.00021,2.162557 l 4.40858,3.214989 c 0,0 -0.048,0.04593 -0.0488,0.09207 -1.9e-4,0.04648 -0.048,0.04593 -0.0957,0.09193 -0.048,0.04548 -0.097,0.138008 -0.14448,0.183478 -0.48187,0.643891 -1.25098,1.515964 -2.21168,2.570906 -0.96008,1.0093 -2.11223,2.200996 -3.40647,3.390808 -1.29424,1.190286 -2.73072,2.424821 -4.21347,3.566527 -1.48278,1.140763 -3.01245,2.234798 -4.4928,3.190206 -1.48033,0.955891 -2.9118,1.772681 -4.1518,2.452727 -1.23999,0.680042 -2.28793,1.177232 -3.05036,1.537972 -0.7624,0.36167 -1.19062,0.54188 -1.19062,0.54188 z M 402.6801,99.387846 c 0,0 -0.37574,-0.236897 -0.98689,-0.569561 -0.32927,-0.190181 -0.70451,-0.427542 -1.12774,-0.665057 -0.42262,-0.284094 -0.8917,-0.615367 -1.40828,-0.946794 -2.06464,-1.419815 -4.64162,-3.496585 -6.97716,-5.895302 -2.33603,-2.398253 -4.33773,-5.024534 -5.68325,-7.131707 -0.37205,-0.515379 -0.602,-1.029365 -0.88021,-1.450831 -0.2787,-0.421465 -0.51049,-0.795725 -0.64833,-1.12265 -0.13825,-0.280365 -0.23118,-0.420847 -0.23118,-0.420847 l 4.81548,-2.53668 a 40.782344,40.782344 0 0 1 -9.4259,-6.948457 c -1.09309,3.931699 -1.62254,8.195918 -1.54011,12.700617 l 4.81597,-2.53668 0.23057,0.467417 c 0.18486,0.327544 0.41664,0.701812 0.69474,1.169847 0.2787,0.421466 0.55569,0.935598 0.92715,1.498028 1.39239,2.15388 3.43936,4.920025 5.82182,7.365466 2.38184,2.492015 5.05263,4.662712 7.21123,6.130343 0.51598,0.378006 1.03257,0.709907 1.45472,0.99351 0.42263,0.284566 0.84586,0.522082 1.17418,0.712242 a 34.218804,34.218804 0 0 1 1.03376,0.61723 z"
id="path8666"
style="fill:#808285;stroke-width:0.2740148"
style="fill:#808285;stroke-width:0.475275"
inkscape:connector-curvature="0" />
<g
aria-label="AND"
style="font-weight:400;font-size:11.23116016px;line-height:1.25;font-family:sans-serif;letter-spacing:0;word-spacing:0;fill:#7e7e7e;stroke-width:0.28074586"
id="text8674">
style="font-weight:400;font-size:11.2312px;line-height:1.25;font-family:sans-serif;letter-spacing:0;word-spacing:0;fill:#7e7e7e;stroke-width:0.280746"
id="text8674"
transform="matrix(1.7344829,0,0,1.7344829,-246.6166,-84.646851)">
<path
d="m 384.64912,141.43118 h -3.30135 l -0.52098,1.49164 h -2.12229 l 3.03263,-8.18756 h 2.51714 l 3.03263,8.18756 h -2.12229 z m -2.77489,-1.51906 h 2.24294 l -1.11873,-3.25747 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.28074586"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.280746"
id="path169111" />
<path
d="m 388.37273,134.73526 h 2.3581 l 2.9778,5.61558 v -5.61558 h 2.00164 v 8.18756 h -2.3581 l -2.97779,-5.61558 v 5.61558 h -2.00165 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.28074586"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.280746"
id="path169113" />
<path
d="m 399.88357,136.3311 v 4.99589 h 0.75679 q 1.29421,0 1.97423,-0.64163 0.68549,-0.64162 0.68549,-1.86454 0,-1.21744 -0.68001,-1.85358 -0.68001,-0.63614 -1.97971,-0.63614 z m -2.11133,-1.59584 h 2.22649 q 1.86455,0 2.77489,0.26872 0.91582,0.26323 1.56841,0.89937 0.57582,0.55388 0.8555,1.27776 0.27968,0.72388 0.27968,1.63971 0,0.92679 -0.27968,1.65615 -0.27968,0.72389 -0.8555,1.27777 -0.65807,0.63614 -1.57938,0.90485 -0.9213,0.26323 -2.76392,0.26323 h -2.22649 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.28074586"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.280746"
id="path169115" />
</g>
<g
aria-label="OR"
style="font-weight:400;font-size:11.88389969px;line-height:1.25;font-family:sans-serif;letter-spacing:0;word-spacing:0;fill:#7e7e7e;stroke-width:0.29714581"
id="text8678">
style="font-weight:400;font-size:11.8839px;line-height:1.25;font-family:sans-serif;letter-spacing:0;word-spacing:0;fill:#7e7e7e;stroke-width:0.297146"
id="text8678"
transform="matrix(1.7344829,0,0,1.7344829,-203.47497,-88.790614)">
<path
d="m 205.15751,136.63285 q -1.02127,0 -1.58413,0.75435 -0.56286,0.75435 -0.56286,2.12378 0,1.36363 0.56286,2.11798 0.56286,0.75435 1.58413,0.75435 1.02708,0 1.58994,-0.75435 0.56286,-0.75435 0.56286,-2.11798 0,-1.36943 -0.56286,-2.12378 -0.56286,-0.75435 -1.58994,-0.75435 z m 0,-1.61895 q 2.08897,0 3.27272,1.19536 1.18375,1.19535 1.18375,3.30172 0,2.10058 -1.18375,3.29593 -1.18375,1.19535 -3.27272,1.19535 -2.08316,0 -3.27271,-1.19535 -1.18375,-1.19535 -1.18375,-3.29593 0,-2.10637 1.18375,-3.30172 1.18955,-1.19536 3.27271,-1.19536 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.29714581"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.297146"
id="path169118" />
<path
d="m 214.47663,139.01195 q 0.70212,0 1.00386,-0.26112 0.30754,-0.26112 0.30754,-0.8588 0,-0.59187 -0.30754,-0.84719 -0.30174,-0.25532 -1.00386,-0.25532 h -0.94004 v 2.22243 z m -0.94004,1.54352 v 3.27851 h -2.23403 v -8.6634 h 3.41198 q 1.71179,0 2.50676,0.57446 0.80077,0.57447 0.80077,1.81624 0,0.8588 -0.4178,1.41005 -0.41199,0.55126 -1.24757,0.81238 0.45841,0.10445 0.81817,0.47582 0.36557,0.36557 0.73695,1.11412 l 1.21276,2.46033 h -2.3791 l -1.05609,-2.15279 q -0.31915,-0.6499 -0.6499,-0.88781 -0.32495,-0.23791 -0.87041,-0.23791 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.29714581"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:0.297146"
id="path169120" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 595.3 189.5"
version="1.1"
id="svg15613"
sodipodi:docname="lattice_true.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata15619">
<rdf:RDF>
@ -35,18 +35,21 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview15615"
showgrid="false"
inkscape:zoom="3.3320313"
inkscape:cx="276.66026"
inkscape:cy="106.98256"
inkscape:cx="276.70808"
inkscape:cy="106.99179"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613"
showguides="false" />
showguides="false"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<circle
cx="261.14737"
cy="13.935258"
@ -54,12 +57,6 @@
id="circle15603-3-6"
style="fill:#dedede;fill-opacity:1;stroke:none;stroke-width:2.6509912;stroke-miterlimit:10"
transform="rotate(16.448378)" />
<circle
cx="301.0087"
cy="33.281559"
r="19.258377"
id="circle15601-9-4-6"
style="fill:#dedede;fill-opacity:1;stroke:none;stroke-width:3.50070024;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<g
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-4-49-9-9-9-3"
@ -265,20 +262,38 @@
r="18.991766"
id="circle3389"
style="fill:#54b948;stroke:#00873a;stroke-width:3.27335119;stroke-miterlimit:10;stroke-dasharray:none" />
<circle
cx="298.04181"
cy="26.905895"
r="19.258377"
id="circle15601-9-4"
style="fill:#191a1c;fill-opacity:1;stroke:#494b4d;stroke-width:3.50070024;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<g
transform="matrix(0.46511595,0,0,0.46511595,172.10161,-60.610547)"
style="fill:#ffffff;fill-opacity:1"
id="g14081-7">
<path
inkscape:connector-curvature="0"
d="m 246.8,193.5 c 0.8,0 1.8,-0.2 2.9,-0.6 v 4.4 c -0.8,0.3 -1.6,0.6 -2.3,0.7 -0.7,0.1 -1.6,0.2 -2.6,0.2 -2,0 -3.5,-0.5 -4.3,-1.5 -0.9,-1 -1.3,-2.5 -1.3,-4.5 V 185 h -2.1 v -2.4 l 2.7,-1.9 1.5,-3.6 h 3.9 v 3.5 h 4.2 v 4.5 h -4.2 v 6.7 c 0,1.1 0.5,1.7 1.6,1.7 z m 16.4,-13.2 c 0.5,0 1,0 1.5,0.1 l 0.3,0.1 -0.5,5.6 c -0.5,-0.1 -1.2,-0.2 -2,-0.2 -1.3,0 -2.3,0.3 -2.8,0.9 -0.6,0.6 -0.9,1.5 -0.9,2.6 v 8.5 h -6 v -17.3 h 4.4 l 0.9,2.8 h 0.3 c 0.5,-0.9 1.2,-1.7 2.1,-2.2 0.9,-0.7 1.8,-0.9 2.7,-0.9 z m 16.5,17.6 -0.7,-2.2 h -0.4 c -0.5,0.8 -1.2,1.4 -2.1,1.8 -0.9,0.4 -1.9,0.6 -3.1,0.6 -1.9,0 -3.4,-0.6 -4.4,-1.7 -1.1,-1.1 -1.6,-2.7 -1.6,-4.7 v -11.3 h 6 v 9.5 c 0,1.1 0.2,2 0.5,2.6 0.3,0.6 0.8,0.9 1.6,0.9 1,0 1.8,-0.4 2.2,-1.2 0.4,-0.8 0.7,-2.2 0.7,-4.1 v -7.6 h 6 v 17.3 h -4.7 z m 17,0.3 c -2.9,0 -5.1,-0.8 -6.7,-2.3 -1.6,-1.5 -2.4,-3.7 -2.4,-6.5 0,-2.9 0.7,-5.2 2.2,-6.7 1.5,-1.6 3.6,-2.3 6.3,-2.3 2.6,0 4.6,0.7 6,2 1.4,1.4 2.1,3.3 2.1,5.9 v 2.7 h -10.7 c 0,1 0.4,1.7 1.1,2.3 0.7,0.6 1.6,0.8 2.7,0.8 1,0 2,-0.1 2.9,-0.3 0.9,-0.2 1.8,-0.5 2.9,-1 v 4.3 c -0.9,0.5 -1.9,0.8 -2.9,1 -0.9,0 -2.1,0.1 -3.5,0.1 z m -0.3,-13.9 c -0.7,0 -1.3,0.2 -1.8,0.7 -0.5,0.4 -0.8,1.1 -0.8,2.1 h 5.1 c 0,-0.8 -0.3,-1.5 -0.7,-2 -0.5,-0.5 -1.1,-0.8 -1.8,-0.8 z"
id="path14079-92"
style="fill:#ffffff;fill-opacity:1" />
id="g4977-5"
transform="matrix(0.77901521,0,0,0.77901521,-402.54913,561.59518)">
<g
style="fill:#000000;stroke:#333333"
transform="matrix(1,0,0,-1,748.97747,-597.53202)"
id="g5757-5-2-6">
<circle
r="24.6"
style="opacity:0.13;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3-2-1"
cy="86.683884"
cx="153.12378" />
<circle
r="24.6"
style="fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1-1-1"
cy="91.046249"
cx="150.32379" />
</g>
<g
id="g3"
style="stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.89256609,0,0,0.89256609,577.14455,-642.11093)">
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2" />
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 595.3 340.00001"
version="1.1"
id="svg3397"
sodipodi:docname="lattice_true_false.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="340">
height="340"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata3403">
<rdf:RDF>
@ -37,19 +37,22 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1376"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview3399"
showgrid="false"
inkscape:zoom="5.6568542"
inkscape:cx="231.81376"
inkscape:cy="82.529229"
inkscape:zoom="2.8284271"
inkscape:cx="285.31759"
inkscape:cy="100.58594"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3397"
inkscape:document-rotation="0"
showguides="false" />
showguides="false"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
style="display:inline;fill:#dddddd;stroke:#838383;stroke-width:6.389;stroke-miterlimit:10"
id="g1482-7-0"
@ -279,33 +282,12 @@
style="fill:none;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
</g>
<g
id="g4359-3"
transform="translate(-90.257071,300.22114)">
<circle
cx="387.48297"
cy="2.0252681"
r="24.6"
id="circle3367-5"
style="opacity:0.12999998;stroke:#000000;stroke-width:6;stroke-miterlimit:10" />
</g>
<g
style="fill:#ffffff;stroke:#ececec"
transform="translate(145.97918,222.72279)"
id="g5757-5">
<circle
style="opacity:0.12999998;fill:#ffffff;stroke:#ececec;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3"
r="24.6"
cy="90.683884"
cx="153.12378" />
<circle
style="fill:#ffffff;stroke:#ececec;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1"
r="24.6"
cy="74.383881"
cx="148.32379" />
</g>
<circle
style="opacity:0.13;fill:#ffffff;stroke:#ececec;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3"
r="24.6"
cy="357.6713"
cx="258.19019" />
<g
id="g6417-4"
transform="matrix(1,0,0,-1,-1.5141745,254.74424)">
@ -373,25 +355,6 @@
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
</g>
<g
id="g5757-5-2"
transform="translate(147.26586,117.05629)"
style="fill:#000000;stroke:#333333">
<circle
cx="153.12378"
cy="86.683884"
id="circle3371-3-2"
style="opacity:0.13;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
r="24.6" />
<circle
fill="#f58235"
stroke="#e76524"
cx="150.32379"
cy="91.046249"
id="circle3385-1-1"
style="fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
r="24.6" />
</g>
</g>
<g
id="g5757"
@ -457,9 +420,70 @@
id="path14079-92"
style="fill:#ffffff;fill-opacity:1" />
</g>
<path
style="fill:#808285;stroke-width:0.50890583"
id="path14085-7"
d="m 282.49276,295.229 h -1.67939 v 5.80152 h -2.6972 V 295.229 h -1.01781 v -1.32316 l 1.11959,-0.66158 v -0.15267 c 0,-1.01781 0.20356,-1.78117 0.61069,-2.23918 0.40712,-0.45802 1.11959,-0.66158 2.03562,-0.66158 0.35623,0 0.71247,0.0509 1.01781,0.10178 0.30534,0.0509 0.71247,0.15267 1.11959,0.30534 l -0.55979,1.73028 c -0.35624,-0.10178 -0.66158,-0.15267 -0.96692,-0.15267 -0.20357,0 -0.35624,0.0509 -0.45802,0.20356 -0.10178,0.15267 -0.15267,0.35624 -0.15267,0.61069 v 0.20356 h 1.67939 v 2.03563 z m 6.20865,5.80152 -0.50891,-1.01781 h -0.0509 c -0.35623,0.45802 -0.71247,0.76336 -1.11959,0.91603 -0.35623,0.15267 -0.86514,0.25445 -1.47583,0.25445 -0.76336,0 -1.32315,-0.20356 -1.73028,-0.66157 -0.40712,-0.45802 -0.66158,-1.06871 -0.66158,-1.88296 0,-0.81424 0.30535,-1.47582 0.86514,-1.88295 0.5598,-0.40712 1.42494,-0.66157 2.54453,-0.71246 h 1.27227 v -0.10179 c 0,-0.66157 -0.30534,-0.96692 -0.96692,-0.96692 -0.5598,0 -1.32316,0.20357 -2.1883,0.5598 l -0.76336,-1.78117 c 0.91603,-0.45802 2.08652,-0.71247 3.46056,-0.71247 1.01782,0 1.78117,0.25445 2.34097,0.76336 0.5598,0.50891 0.81425,1.22137 0.81425,2.08651 v 5.13995 z m -2.03562,-1.78117 c 0.30534,0 0.61068,-0.10178 0.86514,-0.30534 0.25445,-0.20356 0.35623,-0.45802 0.35623,-0.81425 v -0.61069 l -0.61069,0.0509 c -0.91603,0.0509 -1.32315,0.35624 -1.32315,0.96692 -0.0509,0.50891 0.20356,0.71247 0.71247,0.71247 z m 8.44783,1.78117 h -2.6972 v -10.7888 h 2.6972 z m 7.93893,-2.39186 c 0,0.86514 -0.30534,1.47583 -0.86514,1.88296 -0.55979,0.40712 -1.37404,0.66157 -2.49363,0.66157 -0.5598,0 -1.06871,-0.0509 -1.52672,-0.10178 -0.40713,-0.0509 -0.86514,-0.15267 -1.32316,-0.35623 v -2.13741 c 0.40713,0.20357 0.86514,0.35624 1.37405,0.45802 0.5089,0.10178 0.96692,0.20356 1.32315,0.20356 0.61069,0 0.86514,-0.15267 0.86514,-0.40712 0,-0.15267 -0.10178,-0.25446 -0.25445,-0.35624 -0.15267,-0.10178 -0.66158,-0.30534 -1.42494,-0.61068 -0.71246,-0.30535 -1.22137,-0.61069 -1.52671,-1.01782 -0.30535,-0.35623 -0.40713,-0.86514 -0.40713,-1.42493 0,-0.71247 0.30535,-1.32316 0.86514,-1.73028 0.5598,-0.40713 1.37405,-0.61069 2.39186,-0.61069 0.50891,0 1.01781,0.0509 1.47583,0.15267 0.45801,0.10178 0.91603,0.25446 1.42493,0.50891 l -0.71247,1.73028 c -0.35623,-0.15267 -0.76335,-0.30534 -1.11959,-0.40713 -0.35623,-0.10178 -0.71247,-0.15267 -0.96692,-0.15267 -0.45801,0 -0.66158,0.10178 -0.66158,0.30535 0,0.15267 0.10178,0.25445 0.25446,0.35623 0.15267,0.10178 0.61068,0.30534 1.32315,0.5598 0.5598,0.20356 0.96692,0.45801 1.22137,0.66157 0.25446,0.20357 0.45802,0.45802 0.61069,0.76336 0.10178,0.25446 0.15267,0.61069 0.15267,1.0687 z m 5.29262,2.54453 c -1.32315,0 -2.34096,-0.35623 -3.05343,-1.0687 -0.71247,-0.71247 -1.0687,-1.67939 -1.0687,-2.95165 0,-1.32316 0.35623,-2.34097 1.01781,-3.05344 0.66158,-0.71247 1.6285,-1.0687 2.84987,-1.0687 1.17049,0 2.08652,0.30534 2.74809,0.91603 0.66158,0.61069 0.96692,1.52672 0.96692,2.64631 v 1.22138 h -4.8346 c 0,0.45801 0.20356,0.76335 0.45801,1.01781 0.30535,0.25445 0.71247,0.35623 1.22138,0.35623 0.45801,0 0.91603,-0.0509 1.32315,-0.15267 0.40713,-0.10178 0.81425,-0.25445 1.32316,-0.45802 v 1.93385 c -0.40713,0.20356 -0.86514,0.35623 -1.32316,0.45801 -0.45801,0.10178 -0.96692,0.20356 -1.6285,0.20356 z m -0.15267,-6.31043 c -0.30534,0 -0.61068,0.10178 -0.81425,0.30535 -0.20356,0.20356 -0.35623,0.5089 -0.35623,0.96692 h 2.34097 c 0,-0.35624 -0.10178,-0.66158 -0.30535,-0.91603 -0.25445,-0.20357 -0.5089,-0.35624 -0.86514,-0.35624 z"
inkscape:connector-curvature="0" />
<g
id="g4977-5"
transform="matrix(0.97901106,0,0,0.97901106,-583.80333,722.66609)">
<g
style="fill:#000000;stroke:#333333"
transform="matrix(1,0,0,-1,748.97747,-597.53202)"
id="g5757-5-2-6">
<circle
r="24.6"
style="opacity:0.13;fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3371-3-2-1"
cy="86.683884"
cx="153.12378" />
<circle
r="24.6"
style="fill:#000000;stroke:#333333;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1-1-1"
cy="91.046249"
cx="150.32379" />
</g>
<g
id="g3"
style="stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.89256609,0,0,0.89256609,577.14455,-642.11093)">
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2" />
<path
style="fill:#ffffff;stroke:#ffffff;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3" />
</g>
</g>
<g
id="g1">
<g
id="g4359-3"
transform="translate(-90.257071,300.22114)">
<circle
cx="387.48297"
cy="2.0252681"
r="24.6"
id="circle3367-5"
style="opacity:0.12999998;stroke:#000000;stroke-width:6;stroke-miterlimit:10" />
</g>
<circle
style="fill:#ffffff;stroke:#ececec;stroke-width:6;stroke-miterlimit:10"
id="circle3385-1"
r="24.6"
cy="297.44226"
cx="292.62634" />
<g
id="g3-4"
style="stroke:#000000;stroke-width:3.7;stroke-dasharray:none"
transform="matrix(0.87383207,0,0,-0.87383207,-20.678915,251.21394)">
<path
style="fill:#ffffff;stroke:#000000;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 360.86122,-61.060089 v 22.696003"
id="path2-8" />
<path
style="fill:#ffffff;stroke:#000000;stroke-width:3.7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 347.36709,-61.060089 h 27.42239"
id="path3-1" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -1,59 +1,73 @@
---
layout: default
title: Types
---
In the last "category overview" chapter in the book, we will talk about types. This might be disappointing, if you expected to learn about as many *new* categories as possible (for which you don't even suspect that they are categories till the unexpected reveal), as we've been giving examples with the category of types in a given programming language ever since the first chapter, so we already know that they form a category, and *how* they form it. You are also familiar with the Curry-Howard correspondence that connects types and logic.
However, you still probably don't know that types are not just about programming languages (and are more than just another category) --- they are an alternative to sets (and categories) as the foundational language of mathematics. More so, they are as powerful tool as any of those formalisms.
In the last "category overview" chapter in the book, we will talk about types. This might be disappointing, if you expected to learn about as many *new* categories as possible (for which you don't even suspect that they are categories till the unexpected reveal), as we've been giving examples with the category of types in a given programming language ever since the first chapter, and so we already know how they form a category. We are also already familiar with the Curry-Howard correspondence that connects types and logic. However, types are not just about programming languages, and they are not just another category. They are at the heart of a mathematical theory known as *type theory*, which is an alternative to set theory (and category theory too) the foundational language of mathematics, and they are as powerful tool as any of those formalisms.
Sets, Types and Russell's paradox
===
So, here we are back at sets. As we discussed at the start of this book, most books about category theory (and mathematics in general) begin with sets. The reason for this (I used to be baffled by it, but now I understand) is simply because *sets are simple to understand*, at least when we are operating on the conceptual level that is customary for introductory materials --- when we draw a circle around a few things, everyone knows what we are talking about.
Sets
---
So, here we are back at sets. As we discussed at the start of this book, most books about category theory (and mathematics in general) begin with sets, and often go back to sets --- even for us, the standard definitions of most mathematical objects start by "It like is a set, but..."
* Category --- It is a like set, but you don't see the elements
* Monoid --- It is like a set, but you also have this binary operation.
* Order --- It is like a set, but the elements are ordered
**Task:** Provide short definitions of these objects that don't mention sets.
The reason for this (I used to be baffled by it, but now I understand) is simply because *sets are simple to understand*, at least when we are operating on the conceptual level that is customary for introductory materials. We all have, for example, had a set of supplies that are needed for a given activity, (e.g. protractor compass, and pencil for the math class, or paper, paint and brush for drawing) which we grouped together so as not to forget some of them some of them, or grouped people that often hang out together as this or that company. And so, when we circle a few things, everyone knows what we are talking about.
![Sets](../06_type/sets.svg)
However, this initial understanding of sets is *too simple* --- it leads to a bunch of paradoxes, the most famous of which is Russell's paradox.
However, this initial understanding of sets is somewhat *too simple*, (or *naive*, as mathematicians call it), that is, when it is examined closely it leads to a bunch of paradoxes which are not easy to resolve. The most famous of them is Russell's paradox.
Russell's paradox
---
Aside from motivating the creating type theory, Russell's paradox is very interesting in it's own right, so we will start byunderstanding how and why it occurs.
Most sets that we discussed (like the empty set and singleton sets) do not contain themselves.
![Sets that don't contains themselves](../06_type/sets_dont_contain_themselves.svg)
However, since in set theory everything is a set and the elements of sets are again sets, a set can contain a*set can contain itself*.
However, since in set theory everything is a set, and the elements of sets are again sets,*a set can contain itself*. This is the root cause of Russel's paradox.
![A set that contains itself](../06_type/set_contains_itself.svg)
This is root cause of Russel's paradox. In order to understand it, we will try to visualize *the set of all sets that do not contain themselves*. In the original set notation we can define this set to be such that it contains all sets $x$ such that $x$ is not a member of $x$), or $\{x \mid x ∉ x \}$
In order to understand Russell's paradox, we will try to visualize *the set of all sets that do not contain themselves*. In the original set notation we can define this set to be such that it contains all sets $x$ such that $x$ is not a member of $x$), or $\{x \mid x ∉ x \}$
![Russel's paradox - option one](../06_type/russells_paradox.svg)
However, there is something wrong with this picture --- if we look at the definition, we recognize that the set that we just defined does not contain itself and therefore it belongs there as well.
However, there is something wrong with this picture --- if we look at the definition, we recognize that the set that we just defined *also does not contain itself* and therefore it belongs there as well.
![Russel's paradox - option one](../06_type/russells_paradox_2.svg)
Hmm, something is not quite right here either --- because of the new adjustments that we made, our set now *contains itself*. And removing it from the set would just take us back to where we started. This is Russell's paradox.
Hmm, something is not quite right here either --- because of the new adjustments that we made, our set now *contains itself*. And removing it, so it's no longer an element of itself would just take us back to where we started. This is Russell's paradox.
Resolving the paradox in set theory
---
We may deem Russell's paradox unimportant at first, our initial reaction being something like
Most people's initial reaction when seeing Russell's paradox would be something like:
> "Wait, can't we *just* add some rules that say that you cannot draw the set that contains itself?"
> "Wait, can't we just add some rules that say that you cannot draw the set that contains itself?"
This was exactly what the mathematicians Ernst Zermelo and Abraham Fraenkel set out to do (no pun intended), by defining the *ZermeloFraenkel Set Theory*, or *ZFC* (the *C* at the end is a separate story). ZFC was a success, and it is still in use today, however it compromises one of the best features that sets have, namely their *simplicity*.
This was exactly what the mathematicians Ernst Zermelo and Abraham Fraenkel set out to do (no pun intended). And the extra rules they added led to a new definition of a theory (i.e. a formal system) , known as *ZermeloFraenkel set theory*, or *ZFC* (the *C* at the end is a separate story). ZFC was a success, and it is still in use today, however it compromises one of the best features that sets have, namely their *simplicity*.
Why? The original formulation of set theory was based on just one (rather vague) rule/axiom: "Given a property P, there exists a set of all objects that have this property" i.e. any bunch of objects can be put to a set.
What do we mean by that? Well, the original formulation of set theory (which is nowadays called *naive* set theory) was based on just one (rather vague) rule/axiom: "Given a property P, there exists a set, containing all objects that have this property" i.e. any bunch of objects can form a set.
![Naive set theory](../06_type/naive_sets.svg)
In contrast, ZFC is defined by a larger number of (more restrictive) axioms, such as the *axiom of pairing*, which states that given any two sets, there exist a set which contains them as elements.
In contrast, ZFC is defined by a larger number of (more restrictive) axioms.
For example, the *axiom of pairing*, which states that given any two sets, there exist a set which contains them as elements.
![The axiom of pairing in ZFC](../06_type/zfc_pairing.svg)
...or *the axiom of union*, stating that if you have two sets you also have the set that contains all their elements.
...or *the axiom of union*, that states that if you have two sets you also have the set that contains all their elements.
![The axiom of union in ZFC](../06_type/zfc_union.svg)
@ -97,36 +111,47 @@ What are types
> "Every propositional function φ(x)—so it is contended—has, in addition to its range of truth, a range of significance, i.e. a range within which x must lie if φ(x) is to be a proposition at all, whether true or false. This is the first point in the theory of types; the second point is that ranges of significance form types, i.e. if x belongs to the range of significance of φ(x), then there is a class of objects, the *type* of x, all of which must also belong to the range of significance of φ(x)" --- Bertrand Russell - Principles of Mathematics
So let's set all these things aside (haha, this time it was on purpose) and see how do we define a type theory in its own right.
In the last section, we almost fell in the trap of explaining types as something that is are "like sets, but... " (e.g. they are like sets, but a term can only be a member of one type). However, while it may be technically true, any such explanation would be very far away from the ideas behind type theory --- while types started as alternative to sets, they actually ended up quite different. So, thinking in terms of sets won't get you far as a type theorist. Indeed, if I have to rephrase that old Bulgarian joke, a person who only knows about sets, can easily explain what *monoids* are:
We say *a* type theory, because (time for a long disclaimer) there are not one, but many different (albeit related) formulations of type theory that are, confusingly, called type *theories* (and less confusingly, *type systems*), such as *Simply-typed lambda calculus* or *Intuitionistic type theory*. For this reason, it makes sense to speak about *a* type theory. <!--comic: Dr. Smisloff --- I think they are not confused enough --> At the same time, "type theory" (uncountable) refers to the whole field of study of type theories, just like category theory is the study of categories. And moreover, (take a deep breath) you can sometimes think of the different type systems as "different versions of type theory" and so, when people talk about a given set of features that are common to all type systems, they sometimes use the term "type theory" to refer to any random type system that has these features. But let's get back to our subject (however we want to call it).
> "Have you seen a set? It's the same thing, but you also have this binary operation."
In the last section, we talked about types in the context of set theory and we learned that, unlike set elements, terms can belong to only one type. This is correct, but it is not at all the whole story. In fact, thinking in terms of sets won't get you far as a type theorists --- you have to think in terms of *categories*. So, for this reason, We will start this section with the same piece of advise that I gave you when we went from sets to categories and from classical logic to intuitionistic logic: "forget what you know."
Or *orders*:
So, after stumbling upon his eponymous paradox (which you don't know about ;)), Russell started searching for a new way to define all collections of objects that are *interesting*, without accidentally defining collections that lead us ashtray, (and without having to make up a multitude of additional axioms, a-la ZFC). He devised a system that fits all these criteria, based on a revolutionary new idea... which is basically the same idea that is at the heart of category theory (I don't know why he never got credit for being a category theory pioneer): The *interesting* collections, the ones that we want to talk about in the first place, are the *collections that are the source and target of functions*.
> "Have you seen a set? It's the same thing, but you also have this notion that some elements are bigger than others."
But for *types*, their response would to be:
> "Have you seen a set? It has nothing to do with it."
So let's see how do we define a type theory in its own right.
We say *a* type theory, because (time for a long disclaimer) there are not one, but many different (albeit related) formulations of type theory that are, confusingly, called type *theories* (and less confusingly, *type systems*), such as *Simply-typed lambda calculus* or *Intuitionistic type theory*. For this reason, it makes sense to speak about *a* type theory. <!--comic: Dr. Smisloff --- I think they are not confused enough --> At the same time, "type theory" (uncountable) refers to the whole field of study of type theories, just like category theory is the study of categories. And moreover, (take a deep breath) you can sometimes think of the different type systems as "different versions of type theory" and so, when people talk about a given set of features that are common to all type systems, they sometimes use the term "type theory" to refer to any random type system that has these features.
Anyhow, let's get back to our subject (however we want to call it). As we said, type theory was born out of Russell's search for a way to define all collections of objects that are *interesting*, without accidentally defining collections that lead us ashtray (e.g. to his eponymous paradox), and without having to make up a multitude of additional axioms (a-la ZFC). And he managed to create a system that fits all these criteria, based on a revolutionary new idea... which is basically the same idea that is at the heart of category theory (I don't know why he never got credit for being a category theory pioneer): the *interesting* collections, the collections that we want to talk about in the first place, are the *collections that are the source and target of functions*.
Building types
===
We saw that type theory is not so different from set theory when it comes to *structure that it produces*, as all types are sets (although not all sets are types) and all functions are still functions. However, type theory is very different from set theory when it comes to *how does this structure come about*.
We saw that type theory is not so different from set theory when it comes to *structure that it produces* --- all types are sets (although not all sets are types) and all functions are... well functions. However, type theory is very different from set theory when it comes to *the way the structure comes about*, in the same way as the intuitionistic approach to logic is different from the classical approach (and if this metaphor made the connection between type theory and intuitionistic logic, too obvious for you, please don't mention it and act surprised when we make the connection explicit).
In set theory, we start by building all sets and elements. Even we can say (as the existence of all sets is just a result of the axioms) that all sets and their elements are already there at the beginning, floating around and waiting to be explored.
In set theory, (and especially in its naive version) all possible sets and elements are *already there from the start*, as the Platonic world of forms.
![Sets in set theory](../06_type/set_theory_sets.svg)
Then, with the sets already in place, we start defining functions between them.
Then, with the sets already in place, we start exploring them by defining functions between them.
![Sets and functions in set theory](../06_type/set_theory_functions.svg)
In type theory, we start with a blank sheet [digram ommitted] and we start defining functions, only *through the functions* do the types come to be. More specifically, we start by defining a functions that ouput things from nothing thus defining the sets that we want to study (like for example the numbers, the booleans etc).
In type theory, we start with a space that is empty [digram ommitted] and we fill it with a small number of type that we describe element by element (not unlike the axioms of intuitionistic logic).
Next we define functions again, but
Then we start defining functions.
Only *through the functions*
do the types come to be.
Because a term can only belong to one type, in type theory, the natural number 1 is denoted as $1: \mathbb{N}$) and it is an entirely separate object from the integer 1 (denoted or $1: \mathbb{Z}$)
![A set and a subset](../06_type/int_nat_type.svg)
In programming
@ -134,7 +159,7 @@ In programming
> "In general, we can think of data as defined by some collection of selectors and constructors, together with specified conditions that these procedures must fulfill in order to be a valid representation." --- Harold Abelson, Gerald Jay Sussman, Julie Sussman - Structure and Interpretation of Computer Programs
So, we already have some idea of what a type is: a type is a collection of terms, that is the source and target of *functions*. This definition may seem a bit vague, but it is trivial when we look at how types are defined in computer programming.
After exploring something so abstract, I think it's good to get our hands dirty with some more concrete. We already have some idea of what a type is: a type is a collection of terms, that is the source and target of *functions*. This definition may seem a bit vague, but it is trivial when we look at how types are defined in computer programming.
```
class MyType<A> {

View File

@ -0,0 +1,464 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 595.3 300"
version="1.1"
id="svg7816"
sodipodi:docname="set_theory_functions.svg"
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="300"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata7822">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs7820">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : -132.4 : 1"
inkscape:vp_y="0 : 2.3100023 : 0"
inkscape:vp_z="1 : -132.4 : 1"
inkscape:persp3d-origin="0.50000001 : -132.56667 : 1"
id="perspective1172" />
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview7818"
showgrid="false"
inkscape:zoom="0.75750365"
inkscape:cx="247.52356"
inkscape:cy="174.91665"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg7816"
inkscape:snap-global="false"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
id="g853-0"
transform="matrix(0.30590416,0,0,0.30590416,316.9031,48.886708)"
style="stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none">
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7768-2"
r="102.95082"
cy="-12.501837"
cx="-409.07077"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7770-0"
r="102.95082"
cy="-18.905462"
cx="-419.08676"
stroke-miterlimit="10" />
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7776-8"
r="119.6"
cy="478.30444"
cx="-382.37473"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7778-7"
r="119.6"
cy="470.70447"
cx="-394.17471"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1eb9;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7780-3"
r="9.6000004"
cy="515.32428"
cx="-381.8353"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#77e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3"
r="9.6000004"
cy="457.58743"
cx="-336.04929"
stroke-miterlimit="10" />
<circle
style="fill:#8967ac;stroke:#651c5f;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7784-1"
r="9.6000004"
cy="401.66644"
cx="-375.67169"
stroke-miterlimit="10" />
<circle
style="fill:#54b948;stroke:#00873a;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7786-9"
r="9.6000004"
cy="437.23779"
cx="-438.64673"
stroke-miterlimit="10" />
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7764-0-8"
r="123.29848"
cy="320.19632"
cx="-62.813675"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7766-2-3"
r="123.29848"
cy="312.42078"
cx="-75.032455"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#e77724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-9"
r="9.6000004"
cy="485.76727"
cx="-428.31195"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#c9e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-3"
r="9.6000004"
cy="425.69943"
cx="-400.93411"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1e2d;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7780-3-8"
r="9.6000004"
cy="540.93164"
cx="-414.82733"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1eb9;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7780-3-4"
r="9.6000004"
cy="341.82513"
cx="-135.53607"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#77e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-7"
r="9.6000004"
cy="311.87476"
cx="1.7818699"
stroke-miterlimit="10" />
<circle
style="fill:#8967ac;stroke:#651c5f;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7784-1-0"
r="9.6000004"
cy="255.95378"
cx="-37.840538"
stroke-miterlimit="10" />
<circle
style="fill:#54b948;stroke:#00873a;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7786-9-0"
r="9.6000004"
cy="261.2869"
cx="-118.38643"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#e77724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-9-0"
r="9.6000004"
cy="357.21683"
cx="-32.047462"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#c9e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-3-7"
r="9.6000004"
cy="288.56787"
cx="-75.361702"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1e2d;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7780-3-8-7"
r="9.6000004"
cy="360.07727"
cx="-83.125549"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#77e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-7-8"
r="9.6000004"
cy="7.2269316"
cx="-353.10867"
stroke-miterlimit="10" />
<circle
style="fill:#54b948;stroke:#00873a;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7786-9-0-9"
r="9.6000004"
cy="-43.360928"
cx="-473.27698"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#c9e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-3-7-4"
r="9.6000004"
cy="-16.079954"
cx="-430.25226"
stroke-miterlimit="10" />
</g>
<g
id="g853-8"
transform="matrix(0.14171589,-0.2710977,0.2710977,0.14171589,380.16257,154.0301)"
style="stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none">
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7768-6"
r="62.700001"
cy="111.2855"
cx="-297.02246"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7770-4"
r="62.700001"
cy="107.38551"
cx="-303.1225"
stroke-miterlimit="10" />
<circle
style="fill:#8967ac;stroke:#651c5f;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7808-8"
r="10.6"
cy="88.285507"
cx="-306.42249"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7810-9"
r="10.6"
cy="127.68551"
cx="-282.42249"
stroke-miterlimit="10" />
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7764-0-7"
r="66.599998"
cy="318.40854"
cx="-65.623062"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7766-2-4"
r="66.599998"
cy="314.20856"
cx="-72.223068"
stroke-miterlimit="10" />
<circle
style="fill:#fce600;stroke:#ffdd00;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7800-8-1"
r="10.6"
cy="353.60855"
cx="-88.42308"
stroke-miterlimit="10" />
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7802-8-3"
r="10.6"
cy="274.70856"
cx="-84.823074"
stroke-miterlimit="10" />
<circle
style="fill:#54b948;stroke:#00873a;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7804-1-9"
r="10.6"
cy="287.10855"
cx="-43.523056"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1e2d;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7806-3-9"
r="10.6"
cy="321.80853"
cx="-101.52309"
stroke-miterlimit="10" />
</g>
<g
id="g853-5"
transform="matrix(0.23567921,0.19501966,-0.19501966,0.23567921,365.77791,263.97604)"
style="stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none">
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7768-8"
r="62.700001"
cy="111.2855"
cx="-297.02246"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7770-2"
r="62.700001"
cy="107.38551"
cx="-303.1225"
stroke-miterlimit="10" />
<circle
style="fill:#8967ac;stroke:#651c5f;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7808-0"
r="10.6"
cy="88.285507"
cx="-306.42249"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7810-7"
r="10.6"
cy="127.68551"
cx="-282.42249"
stroke-miterlimit="10" />
</g>
<g
id="g25985-4-8-8"
style="display:inline;fill:#dddddd;stroke:#4d4d4d;stroke-width:6.389;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.02798081,0.05510292,-0.07895461,0.06195753,335.93035,120.81042)">
<path
inkscape:connector-curvature="0"
style="fill:#838383;fill-opacity:1;stroke:#4d4d4d;stroke-width:30.0282;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m -609.36914,524.31037 14.41784,-35.42618 36.64345,26.90294 z"
id="path3233-5-4-8-4-4-1-3-3-6"
inkscape:transform-center-x="0.9901113"
inkscape:transform-center-y="2.1216647" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:9.11185;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-3-3-9-1-6-0-7-2-0-1-0"
d="M -2144.6367,791.15053 C -1767.2979,508.0558 -1016.0331,384.05419 -539.57256,520.80751"
sodipodi:nodetypes="cc" />
</g>
<g
id="g25985-4-8-8-3"
style="display:inline;fill:#dddddd;stroke:#4d4d4d;stroke-width:6.389;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.08130908,0.04032568,0.10814157,-0.08814992,274.64682,205.05591)">
<path
inkscape:connector-curvature="0"
style="fill:#838383;fill-opacity:1;stroke:#4d4d4d;stroke-width:19.2873;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m -576.79872,527.51696 14.75419,-24.66232 18.58361,16.08099 z"
id="path3233-5-4-8-4-4-1-3-3-6-6"
inkscape:transform-center-x="0.54644724"
inkscape:transform-center-y="1.585971" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:7.24599;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-3-3-9-1-6-0-7-2-0-1-0-7"
d="M -2144.6367,791.15053 C -1767.2979,508.0558 -1016.0331,384.05419 -539.57256,520.80751"
sodipodi:nodetypes="cc" />
</g>
<g
id="g25985-4-8-8-3-5"
style="display:inline;fill:#dddddd;stroke:#4d4d4d;stroke-width:6.389;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.08130908,0.04032568,0.10814157,-0.08814992,260.30542,194.44261)">
<path
inkscape:connector-curvature="0"
style="fill:#838383;fill-opacity:1;stroke:#4d4d4d;stroke-width:19.2873;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m -576.79872,527.51696 14.75419,-24.66232 18.58361,16.08099 z"
id="path3233-5-4-8-4-4-1-3-3-6-6-3"
inkscape:transform-center-x="0.54644724"
inkscape:transform-center-y="1.585971" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:7.24599;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-3-3-9-1-6-0-7-2-0-1-0-7-5"
d="M -2144.6367,791.15053 C -1767.2979,508.0558 -1016.0331,384.05419 -539.57256,520.80751"
sodipodi:nodetypes="cc" />
</g>
<g
id="g25985-4-8-8-3-6"
style="display:inline;fill:#dddddd;stroke:#4d4d4d;stroke-width:6.389;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.00469186,-0.06275113,-0.12200738,-0.04451763,385.46702,139.76639)">
<path
inkscape:connector-curvature="0"
style="fill:#838383;fill-opacity:1;stroke:#4d4d4d;stroke-width:19.2873;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m -576.79872,527.51696 14.75419,-24.66232 18.58361,16.08099 z"
id="path3233-5-4-8-4-4-1-3-3-6-6-2"
inkscape:transform-center-x="0.54644724"
inkscape:transform-center-y="1.585971" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:7.24599;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-3-3-9-1-6-0-7-2-0-1-0-7-9"
d="M -2144.6367,791.15053 C -1767.2979,508.0558 -1016.0331,384.05419 -539.57256,520.80751"
sodipodi:nodetypes="cc" />
</g>
<g
id="g25985-4-8-8-3-5-1"
style="display:inline;fill:#dddddd;stroke:#4d4d4d;stroke-width:6.389;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(-0.06195522,0.00469785,-0.03218174,0.10125344,264.81493,174.25373)">
<path
inkscape:connector-curvature="0"
style="fill:#838383;fill-opacity:1;stroke:#4d4d4d;stroke-width:19.2873;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m -576.79872,527.51696 14.75419,-24.66232 18.58361,16.08099 z"
id="path3233-5-4-8-4-4-1-3-3-6-6-3-2"
inkscape:transform-center-x="0.54644724"
inkscape:transform-center-y="1.585971" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:7.24599;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-3-3-9-1-6-0-7-2-0-1-0-7-5-7"
d="M -2144.6367,791.15053 C -1767.2979,508.0558 -1016.0331,384.05419 -539.57256,520.80751"
sodipodi:nodetypes="cc" />
</g>
<g
id="g25985-4-8-8-3-5-1-8"
style="display:inline;fill:#dddddd;stroke:#4d4d4d;stroke-width:6.389;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(-0.04858436,-0.0210308,0.00590465,-0.08954431,248.79591,278.29142)"
inkscape:transform-center-x="-40.628282"
inkscape:transform-center-y="9.9377856">
<path
inkscape:connector-curvature="0"
style="fill:#838383;fill-opacity:1;stroke:#4d4d4d;stroke-width:19.2873;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m -576.79872,527.51696 14.75419,-24.66232 18.58361,16.08099 z"
id="path3233-5-4-8-4-4-1-3-3-6-6-3-2-7"
inkscape:transform-center-x="0.54644724"
inkscape:transform-center-y="1.585971" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:7.24599;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-3-3-9-1-6-0-7-2-0-1-0-7-5-7-9"
d="M -2144.6367,791.15053 C -1767.2979,508.0558 -1016.0331,384.05419 -539.57256,520.80751"
sodipodi:nodetypes="cc" />
</g>
<g
id="g25985-4-8-8-3-5-1-2"
style="display:inline;fill:#dddddd;stroke:#4d4d4d;stroke-width:6.389;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(-4.5553846e-4,-0.0621314,-0.09881911,-0.03902187,357.95873,119.22549)">
<path
inkscape:connector-curvature="0"
style="fill:#838383;fill-opacity:1;stroke:#4d4d4d;stroke-width:19.2873;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m -576.79872,527.51696 14.75419,-24.66232 18.58361,16.08099 z"
id="path3233-5-4-8-4-4-1-3-3-6-6-3-2-6"
inkscape:transform-center-x="0.54644724"
inkscape:transform-center-y="1.585971" />
<path
style="fill:none;stroke:#4d4d4d;stroke-width:7.24599;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-3-3-9-1-6-0-7-2-0-1-0-7-5-7-1"
d="M -2144.6367,791.15053 C -1767.2979,508.0558 -1016.0331,384.05419 -539.57256,520.80751"
sodipodi:nodetypes="cc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,336 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 595.3 300"
version="1.1"
id="svg7816"
sodipodi:docname="set_theory_sets.svg"
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
width="595.29999"
height="300"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata7822">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs7820">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : -132.4 : 1"
inkscape:vp_y="0 : 2.3100023 : 0"
inkscape:vp_z="1 : -132.4 : 1"
inkscape:persp3d-origin="0.50000001 : -132.56667 : 1"
id="perspective1172" />
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1080"
inkscape:window-height="1864"
id="namedview7818"
showgrid="false"
inkscape:zoom="2.1425439"
inkscape:cx="305.94473"
inkscape:cy="193.46162"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg7816"
inkscape:snap-global="false"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" />
<g
id="g853-0"
transform="matrix(0.30590416,0,0,0.30590416,316.9031,48.886708)"
style="stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none">
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7768-2"
r="102.95082"
cy="-12.501837"
cx="-409.07077"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7770-0"
r="102.95082"
cy="-18.905462"
cx="-419.08676"
stroke-miterlimit="10" />
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7776-8"
r="119.6"
cy="478.30444"
cx="-382.37473"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7778-7"
r="119.6"
cy="470.70447"
cx="-394.17471"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1eb9;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7780-3"
r="9.6000004"
cy="515.32428"
cx="-381.8353"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#77e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3"
r="9.6000004"
cy="457.58743"
cx="-336.04929"
stroke-miterlimit="10" />
<circle
style="fill:#8967ac;stroke:#651c5f;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7784-1"
r="9.6000004"
cy="401.66644"
cx="-375.67169"
stroke-miterlimit="10" />
<circle
style="fill:#54b948;stroke:#00873a;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7786-9"
r="9.6000004"
cy="437.23779"
cx="-438.64673"
stroke-miterlimit="10" />
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7764-0-8"
r="123.29848"
cy="320.19632"
cx="-62.813675"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7766-2-3"
r="123.29848"
cy="312.42078"
cx="-75.032455"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#e77724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-9"
r="9.6000004"
cy="485.76727"
cx="-428.31195"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#c9e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-3"
r="9.6000004"
cy="425.69943"
cx="-400.93411"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1e2d;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7780-3-8"
r="9.6000004"
cy="540.93164"
cx="-414.82733"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1eb9;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7780-3-4"
r="9.6000004"
cy="341.82513"
cx="-135.53607"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#77e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-7"
r="9.6000004"
cy="311.87476"
cx="1.7818699"
stroke-miterlimit="10" />
<circle
style="fill:#8967ac;stroke:#651c5f;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7784-1-0"
r="9.6000004"
cy="255.95378"
cx="-37.840538"
stroke-miterlimit="10" />
<circle
style="fill:#54b948;stroke:#00873a;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7786-9-0"
r="9.6000004"
cy="261.2869"
cx="-118.38643"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#e77724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-9-0"
r="9.6000004"
cy="357.21683"
cx="-32.047462"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#c9e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-3-7"
r="9.6000004"
cy="288.56787"
cx="-75.361702"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1e2d;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7780-3-8-7"
r="9.6000004"
cy="360.07727"
cx="-83.125549"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#77e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-7-8"
r="9.6000004"
cy="7.2269316"
cx="-353.10867"
stroke-miterlimit="10" />
<circle
style="fill:#54b948;stroke:#00873a;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7786-9-0-9"
r="9.6000004"
cy="-43.360928"
cx="-473.27698"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#c9e724;stroke-width:12.0953;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle7782-3-3-7-4"
r="9.6000004"
cy="-16.079954"
cx="-430.25226"
stroke-miterlimit="10" />
</g>
<g
id="g853-8"
transform="matrix(0.14171589,-0.2710977,0.2710977,0.14171589,380.16257,154.0301)"
style="stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none">
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7768-6"
r="62.700001"
cy="111.2855"
cx="-297.02246"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7770-4"
r="62.700001"
cy="107.38551"
cx="-303.1225"
stroke-miterlimit="10" />
<circle
style="fill:#8967ac;stroke:#651c5f;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7808-8"
r="10.6"
cy="88.285507"
cx="-306.42249"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7810-9"
r="10.6"
cy="127.68551"
cx="-282.42249"
stroke-miterlimit="10" />
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7764-0-7"
r="66.599998"
cy="318.40854"
cx="-65.623062"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7766-2-4"
r="66.599998"
cy="314.20856"
cx="-72.223068"
stroke-miterlimit="10" />
<circle
style="fill:#fce600;stroke:#ffdd00;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7800-8-1"
r="10.6"
cy="353.60855"
cx="-88.42308"
stroke-miterlimit="10" />
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7802-8-3"
r="10.6"
cy="274.70856"
cx="-84.823074"
stroke-miterlimit="10" />
<circle
style="fill:#54b948;stroke:#00873a;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7804-1-9"
r="10.6"
cy="287.10855"
cx="-43.523056"
stroke-miterlimit="10" />
<circle
style="fill:#d71920;stroke:#be1e2d;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7806-3-9"
r="10.6"
cy="321.80853"
cx="-101.52309"
stroke-miterlimit="10" />
</g>
<g
id="g853-5"
transform="matrix(0.23567921,0.19501966,-0.19501966,0.23567921,365.77791,263.97604)"
style="stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none">
<circle
style="opacity:0.14;stroke:#000000;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7768-8"
r="62.700001"
cy="111.2855"
cx="-297.02246"
stroke-miterlimit="10" />
<circle
style="fill:#e2e6d7;fill-opacity:1;stroke:#808285;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7770-2"
r="62.700001"
cy="107.38551"
cx="-303.1225"
stroke-miterlimit="10" />
<circle
style="fill:#8967ac;stroke:#651c5f;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7808-0"
r="10.6"
cy="88.285507"
cx="-306.42249"
stroke-miterlimit="10" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:12.3553;stroke-miterlimit:10;stroke-dasharray:none"
id="circle7810-7"
r="10.6"
cy="127.68551"
cx="-282.42249"
stroke-miterlimit="10" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -101,7 +101,9 @@ Now, we will generalize the definition of an order isomorphism, so it also appli
![Category isomorphism](../10_functors/category_isomorphism.svg)
After examining this definition closely, we realize that, although it *sounds* a bit more complex (and *looks* a bit messier) than the one we have for orders *it is actually the same thing*. It is just that the so-called "morphism mapping" between categories that have just one morphism for any two objects are trivial, and so we can omit them.
After examining this definition closely, we realize that, although it *sounds* a bit more complex (and *looks* a bit messier) than the one we have for orders *it is actually the same thing*.
It is just that the so-called "morphism mapping" between categories that have just one morphism for any two objects are trivial, and so we can omit them.
![Order isomorphism](../10_functors/category_order_isomorphism_2.svg)
@ -120,9 +122,9 @@ By the way, what we just did (taking a concept that is defined for a more narrow
The problem with categorical isomorphisms
---
By examining them more closely, we realize that categorical isomorphisms are not so hard to define. However there is another issue with them, namely that they *don't capture the essence of what categorical equality should be*. I have devised a very good and intuitive explanation why is it the case, that this ~~margin~~ section is too narrow to contain.
By examining them more closely, we realize that categorical isomorphisms are not so hard to define. However there is another issue with them, namely that they *don't capture the essence of what categorical equality should be*. I have devised a very good and intuitive explanation why is it the case, that this ~~margin~~ section is too narrow to contain. So we will leave it for the next chapter, where we will also devise a more apt way to define a *two-way connection* between categories.
In the next chapter we will devise a more apt way to define a *two-way connection* between categories. But for this, we need to first examine *one-way connections* between them, i.e. *functors*.
But first, we need to examine *one-way connections* between them, i.e. *functors*.
PS: Categorical isomorphisms are also *very rare in practice* --- the only one that comes to mind me is the Curry-Howard-Lambek isomorphism from the previous chapter. That's because if two categories are isomorphic then there is no reason at all to treat them as different categories --- they are one and the same.
@ -199,13 +201,13 @@ To see *why* is it so powerful, let's check some examples.
Functors in everyday language
---
There is a common figure of speech, that goes like this:
There is a common figure of speech (which is used all the time in this book) which goes like this:
> If $a$ is like $F a$, then $b$ is like $F b$.
Or "$a$ is related to $F a$, in the same way as $b$ is related to $F b$," e.g. "If schools are like corporations, then teachers are like bosses".
This figure of speech is a way to introduce a functor: what are you saying is that there is a certain connection (or category-theory therms a "morphism") between schools and teachers, that is similar to the connection between corporations and bosses i.e. that there is some kind of structure preserving map that connects the category of school-related things, to the category of work-related things in which schools (a) are mapped to corporations (F a) and teacher (b) are mapped to bosses (F b). and the connections between schools and teachers (a -> b) are mapped to the connections between corporations and bosses (F a -> F b).
This figure of speech is nothing but a way to describe a functor in our day-to-day language: what we mean by it is that there is a certain connection (or category-theory therms a "morphism") between schools and teachers, that is similar to the connection between corporations and bosses i.e. that there is some kind of structure-preserving map that connects the category of school-related things, to the category of work-related things which maps schools ($a$) to corporations ($F a$) and teacher ($b$) to bosses ($F b$), and which is such that the connections between schools and teachers ($a \to b$) are mapped to the connections between corporations and bosses ($F a \to F b$).
Diagrams are functors
---
@ -267,12 +269,27 @@ In maps, morphisms that are a result of composition are often not displayed, but
Notice that in order to be a functor, a map does not have to list *all* roads that exist in real life, and *all* traveling options ("the map is not the territory"), the only requirement is that *the roads that it lists should be actual* --- this is a characteristic shared by all many-to-one relationships (i.e. functions).
<!--
Functors can also go from complex to simple
---
So far, we saw functors that go from a simple category, into a more complex one, which aim to *select* some objects from the target category*.
But functors can go the other way too --- from complex to simple --- those are the functors which *sort* the object of the source category into the categories that constitute the target.
Even more interestingly, we often encounter often special pairs of functors, consisting of one *selective* and one *sorting* functor that go between two categories, that kinda reverse each other.
-->
Human perception is functorial
---
We saw that, aside from being a category-theoretic concept, functors are connected to disciplines that study the human mind, like logic, linguistics, semiotics and the like. Why is it so? Recently, I wrote a [blog post about using logic to model real-life thinking](/logic-thought)) where I tackle the "unreasonable effectiveness" of functors (and "maps" in general), where I argue that is because human perception, human thinking, is functorial, that perception is just a series of functors.
We saw that, aside from being a category-theoretic concept, functors are connected to many disciplines that study the human mind such as logic, linguistics, semiotics and the like. Why is it so? Recently, I wrote a [blog post about using logic to model real-life thinking](/logic-thought)) where I tackle the "unreasonable effectiveness" of functors (and "maps" in general), where I argue that human perception, human thinking, is functorial.
My thesis is that to perceive the world around us, we are going through a bunch of functors that go from more raw "low-level" mental models to more abstract "high-level" ones. For example, our brain creates a functor between the category of raw sensory data that we receive from our senses, to a category containing some basic model of how the world works (one that tells us where are we in space, how many objects are we seeing etc.). Then we are connecting this model to another, more abstract model, which provides us with a higher-level view of the situation that we are in, and so on.
My thesis is that to perceive the world around us, we are going through a bunch of functors that go from more raw "low-level" mental models to more abstract "high-level" ones.
We may say that perception starts with raw sensory data. From it, we go, (using a functor) to a category containing some basic model of how the world works (one that tells us where are we in space, how many objects are we seeing etc.). Then we are connecting this model to another, even more abstract model, which provides us with a higher-level view of the situation that we are in, and so on.
![Perception is functorial](../10_functors/chain.svg)

BIN
references/2012.06072v2.pdf Normal file

Binary file not shown.