Show this function is associative (or provide a counter example)

In summary, the conversation is about trying to prove the associativity of a function involving square roots using algebraic manipulation. The attempt at a solution involves isolating terms and squaring both sides of the equation, but it becomes tedious and may require the use of a computer algebra system to expand the expressions. The conversation also discusses the need to consider positive and negative numbers separately when proving the function's associativity.
  • #36
I guess what I'm really after here is asking whether anybody else realizes how fantastically brilliant micromass's suggestion is, especially following Ray Vickson's heroically hard but straightforward solution. It also let's you construct lots of other associative functions that would be equally hard to prove the direct way. Using micromass's suggestion, the first time I worked it out the proof fell out so quickly I didn't even see how it happened, it was that quick. I had to replay it a few times before I really understood it. No real 'calculation' was even needed, much less an intensive computer algebra project. It's that good.
 
Physics news on Phys.org
  • #37
Just got back with a bit of time to look at it again. I fully agree with Dick at the brilliance of Micromass's observation. And good work to you Dick to observe observation about the general ##g(g^{-1}(x)+g^{-1}(y))## form.
 
  • #38
Dick said:
Something like that. Notice if you put x=sinh(a) and y=sinh(b) then sinh(a+b) is equal to your f(x,y). So f(x,y)=sinh(asinh(x)+asinh(y)).

Dick said:
Hmm. Has everyone stopped following this thread? There's a really easy way and there's really hard way. The constrast beween the two is pretty severe.

Dick said:
Ah, I get it, finally! All of the squares and square roots were really just hiding the fact that your ##f(x,y)## can be written as ##g(g^{-1}(x)+g^{-1}(y))## for some other function ##g(x)##. This confers the magic 'associative' property.

Ah thanks for the tips! I tend not to have internet access over the weekends as I'm at work from Friday afternoon through Sunday night, and I don't have internet there. Also, I've been afraid to put more time on this problem as I have 5 other problems I have not yet solved and I was afraid I'd have nothing to show my professor! I will definitely get back to these hints as soon as I complete the other problems!
 
  • #39
ArcanaNoir said:
Ah thanks for the tips! I tend not to have internet access over the weekends as I'm at work from Friday afternoon through Sunday night, and I don't have internet there. Also, I've been afraid to put more time on this problem as I have 5 other problems I have not yet solved and I was afraid I'd have nothing to show my professor! I will definitely get back to these hints as soon as I complete the other problems!

Definitely come back to this. Once you've wrapped your head around the hints, you might find it's the easiest of the problems. Wouldn't that be a nice surprise?
 
Last edited:
  • #40
Dick said:
Just writing it as f(x,y)=sinh(arcsinh(x)+arcsinh(y)) (following micromass's hint) makes it immediately fall apart. The only part that's even a little hard is keeping track of the parentheses.

Okay maybe I'm dense, but I don't see how f(x,y)=sinh(arcsinh(x)+arcsinh(y)). Here is what I did to try to get it to come out:

[tex] \sinh (\arcsinh (x) + \arcsinh (y) )\\
= \sinh (\ln (x+\sqrt{1+x^2}) + \ln (y+\sqrt{1+y^2} ) ) \\
= \sinh (\ln [(x+\sqrt{1+x^2})(y+\sqrt{1+y^2} )]) \\
=\frac{e^{\ln \text{stuff}} - e^{-\ln \text{stuff}}}{2} \\
=\frac{1}{2} ((x+\sqrt{1+x^2})(y+\sqrt{1+y^2} )-\frac{1}{(x+\sqrt{1+x^2})(y+\sqrt{1+y^2} )}) [/tex]

And I have tried some manipulations after that but never get it to simplify to be f(x,y).
Am I using the wrong identity?
 
  • #41
Dick said:
Definitely come back to this. Once you've wrapped your head around the hints, you might find it's the easiest of the problems. Wouldn't that be a nice surprise?

Dick, you might be interested in this:

http://www.researchgate.net/publication/2121594_On_the_Possible_Monoid_Structures_of_the_Natural_Numbers_N_or_Finding_All_Associative_Binary_Operations_on_N

Look at equation 3.2 and proposition 3.1. As is usual, someone has thought about this stuff before. It looks to me like if you use R instead of N, let ##f(x,y) = x+y## and ##\omega=\sinh##, the result follows from the associativity of addition. And, as you have observed, there are other bijections ##\omega##.
 
Last edited by a moderator:
  • #42
ArcanaNoir said:
Okay maybe I'm dense, but I don't see how f(x,y)=sinh(arcsinh(x)+arcsinh(y)). Here is what I did to try to get it to come out:

[tex] \sinh (\arcsinh (x) + \arcsinh (y) )\\
= \sinh (\ln (x+\sqrt{1+x^2}) + \ln (y+\sqrt{1+y^2} ) ) \\
= \sinh (\ln [(x+\sqrt{1+x^2})(y+\sqrt{1+y^2} )]) \\
=\frac{e^{\ln \text{stuff}} - e^{-\ln \text{stuff}}}{2} \\
=\frac{1}{2} ((x+\sqrt{1+x^2})(y+\sqrt{1+y^2} )-\frac{1}{(x+\sqrt{1+x^2})(y+\sqrt{1+y^2} )}) [/tex]

And I have tried some manipulations after that but never get it to simplify to be f(x,y).
Am I using the wrong identity?

Use micromass's hint. And that sinh(arcsinh(x))=x and cosh(arcsinh(x))=sqrt(1+x^2).
 
  • #43
LCKurtz said:
Dick, you might be interested in this:

http://www.researchgate.net/publication/2121594_On_the_Possible_Monoid_Structures_of_the_Natural_Numbers_N_or_Finding_All_Associative_Binary_Operations_on_N

Look at equation 3.2 and proposition 3.1. As is usual, someone has thought about this stuff before. It looks to me like if you use R instead of N, let ##f(x,y) = x+y## and ##\omega=\sinh##, the result follows from the associativity of addition. And, as you have observed, there are other bijections ##\omega##.

Thanks for the reference! I'll try and look at it once I get past ResearchGate's signup procedure...
 
Last edited by a moderator:
  • #44
Dick said:
Thanks for the reference! I'll try and look at it once I get past ResearchGate's signup procedure...

Close the pop up and you should see the PDF link on the right hand side of the page.
 
  • #45
ArcanaNoir said:
Close the pop up and you should see the PDF link on the right hand side of the page.

Thanks, but I don't see it. I think I may have to have an account and be logged in. But that's ok, I found the same paper on arXiv.org.
 
  • #46
ArcanaNoir said:
Okay maybe I'm dense, but I don't see how f(x,y)=sinh(arcsinh(x)+arcsinh(y)).
...

And I have tried some manipulations after that but never get it to simplify to be f(x,y).
Am I using the wrong identity?
Try looking at it this way:

Suppose that given x and y, there exist real numbers, a and b, such that
x = sinh(a)

and

y = sinh(b) .​

Then f(x,y) is becomes the following:

##\displaystyle f(x,\,y)=f(\sinh(a),\,\sinh(b))##
##\displaystyle = \sinh(a)\sqrt{1+\sinh^2(b)}+\sinh(b)\sqrt{1+\sinh^2(a)}
##​

Then use one of the Pythagorean identities to get rid of the radical.

After that use an argument addition identity (analogous to angle addition for trig functions).
 
Last edited:
  • #47
SammyS said:
Try looking at it this way:

Suppose that given x and y, there exist real numbers, a and b, such that
x = sinh(a)

and

y = sinh(b) .​

Then f(x,y) is becomes the following:

##\displaystyle f(x,\,y)=f(\sinh(a),\,\sinh(b))##
##\displaystyle = \sinh(a)\sqrt{1+\sinh^2(b)}+\sinh(b)\sqrt{1+\sinh^2(a)}
##​

Then use then one of the Pythagorean identities to get rid of the radical.

After that use an argument addition identity (analogous to angle addition for trig functions).

I'm not sure that's terribly illuminating, I'd just say following micromass's hint, ##\sinh(arcsinh(x)+arcsinh(y))=\sinh(arcsinh(x)) \cosh(arcsinh(y))+\cosh(arcsinh(x)) \sinh(arcsinh(y))##. Using ##\cosh(arcsinh(x))=\sqrt{1+x^2}## this seems pretty straightforward. Sorry I can't find a texy way to do the inverse hyperbolics.
 
Last edited:
  • #48
LCKurtz said:
http://www.researchgate.net/publication/2121594_On_the_Possible_Monoid_Structures_of_the_Natural_Numbers_N_or_Finding_All_Associative_Binary_Operations_on_N

Look at equation 3.2 and proposition 3.1. As is usual, someone has thought about this stuff before. It looks to me like if you use R instead of N, let ##f(x,y) = x+y## and ##\omega=\sinh##, the result follows from the associativity of addition. And, as you have observed, there are other bijections ##\omega##.

I mused as to whether there's an entire field (functions on operators) that could open up here (or maybe already has). As has been noted in this thread, if f is invertible S→S and ° is an operator S×S→S then f induces an operator °f by x °f y = f((f-1(x)°f-1(y)). If ° is associative, so is °f. Likewise commutativity. More surprisingly perhaps, if ° distributes across another operator °' then °f distributes across °'f.
If f is linear then it's rather trivial: °f = °. Some other examples:
f(x) = ex:
+f = × (or, by abuse of notation, e+ = ×). Using the same shorthand:
x e× y = xln(y) = yln(x)
f(x) = √x:
x √+ y = √(x2+y2)​
f(x) = tan(x):
x tan(+) y = (x+y)/(1-xy)​
It's suggestive, but needs a deeper result to make it interesting.
 
Last edited by a moderator:
  • #49
haruspex said:
I mused as to whether there's an entire field (functions on operators) that could open up here (or maybe already has). As has been noted in this thread, if f is invertible S→S and ° is an operator S×S→S then f induces an operator °f by x °f y = f((f-1(x)°f-1(y)). If ° is associative, so is °f. Likewise commutativity. More surprisingly perhaps, if ° distributes across another operator °' then °f distributes across °'f.
If f is linear then it's rather trivial: °f = °. Some other examples:
f(x) = ex:
+f = × (or, by abuse of notation, e+ = ×). Using the same shorthand:
x e× y = xln(y) = yln(x)
f(x) = √x:
x √+ y = √(x2+y2)​
f(x) = tan(x):
x tan(+) y = (x+y)/(1-xy)​
It's suggestive, but needs a deeper result to make it interesting.

Probably already has been thought about, that's what the monoids paper was about. I'm more interested in whether ArcanaNoir can figure out that this is a pretty easy problem with the right clues.
 
  • #50
Dick said:
I'm not sure that's terribly illuminating, I'd just say following micromass's hint, ##\sinh(arcsinh(x)+arcsinh(y))=\sinh(arcsinh(x)) \cosh(arcsinh(y))+\cosh(arcsinh(x)) \sinh(arcsinh(y))##. Using ##\cosh(arcsinh(x))=\sqrt{1+x^2}## this seems pretty straightforward. Sorry I can't find a texy way to do the inverse hyperbolics.
Well, it does give ##\displaystyle \ f(x,y)=\sinh(\text{arcsinh}(x)+\text{arcsinh}(y)) \ ## rather easily.

To get texy inverse hyperbolics I use

\text{arcsinh} .
 
  • #51
SammyS said:
Well, it does give ##\displaystyle \ f(x,y)=\sinh(\text{arcsinh}(x)+\text{arcsinh}(y)) \ ## rather easily.

To get texy inverse hyperbolics I use

\text{arcsinh} .

Yeah, I see what you are doing now. And thanks for the texy tip.
 
  • #52
Just confirmed with the professor, hyperbolic trig is the way to go. *still trying to get it*
 
  • #53
ArcanaNoir said:
Just confirmed with the professor, hyperbolic trig is the way to go. *still trying to get it*

Use ##\cosh^2 a - \sinh^2 a = 1##.

Btw, according to wiki, ##\text{arcsinh}## is a misnomer. It should be ##\text{arsinh}##.
 
  • #54
Okay, you guys have been wonderful, especially Dick and Micro. Although I'm beginning to suspect Micro is a genius, in which case he sneezes and answers pop out of him, so it's not like he has to try really hard. :P j/k I appreciate your tireless efforts Micro! (not kidding about thinking you're a genius...)
Anyway I'm trying to use Micro's hint but I feel like I'm slipping past the part where I'm supposed to rearrange the expressions to show they are equivalent. I will show my simplification for the expressions, maybe someone can point out where I was supposed to do something trig-y.

I have verified that [itex] \cosh (\sinh ^{-1}(x))=\sqrt{1+x^2} [/itex] and that [itex] f(x,y)=\sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y)) [/itex]

A:
[tex] (x\ast y)\ast z = \sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y))\ast z \\[/tex] [tex]
= \sinh (\sinh ^{-1} [\sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y))]+\sinh ^{-1} (z)) \\
=\sinh [\sinh ^{-1} [\sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y))]]\cosh (\sinh ^{-1} (z))+\\
\cosh [\sinh ^{-1} [\sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y))]]\sinh (\sinh ^{-1} (z)) \\
=\sinh [\sinh ^{-1} [\sinh (\sinh ^{-1} (x))\cosh (\sinh ^{-1} (y))+\cosh (\sinh ^{-1} (x))\sinh (\sinh ^{-1} (y))]]\cdot \sqrt{1+z^2} +\\
\cosh [\sinh ^{-1} [ \sinh (\sinh ^{-1} (x))\cosh (\sinh ^{-1}(y))+\cosh (\sinh ^{-1} (x))\sinh (\sinh ^{-1} (y))]]\cdot z \\
\sinh [\sinh ^{-1} [x\sqrt{1+y^2}+y\sqrt{1+x^2}]]\sqrt{1+z^2}+\cosh [\sinh ^{-1} [x\sqrt{1+y^2}+y\sqrt{1+x^2}]]z [/tex]

B:
[tex] x\ast (y\ast z) = \sinh (\sinh ^{-1} (x)+\sinh ^{-1}(y\ast z)) \\
=\sinh (\sinh ^{-1}(x)+\sinh ^{-1} [\sinh (\sinh ^{-1}(y) + \sinh ^{-1}(z))]) \\
=\sinh [\sinh ^{-1} (x) + \sinh ^{-1} [\sinh (\sinh ^{-1}(y))\cosh (\sinh ^{-1} (z))+\\
\cosh (\sinh ^{-1} (y))\sinh (\sinh ^{-1} (z))]] \\
=\sinh [ \sinh ^{-1}(x)+\sinh ^{-1} [y\sqrt{1+z^2}+z\sqrt{1+y^2}]] \\
=\sinh (\sinh ^{-1} (x))\cosh (\sinh ^{-1} [y\sqrt{1+z^2}+z\sqrt{1+y^2}])+\\
\cosh (\sinh ^{-1} (x))\sinh (\sinh ^{-1}[y\sqrt{1+z^2}+z\sqrt{1+y^2}]) \\
=x\sqrt{1+(y\sqrt{1+z^2}+z\sqrt{1+y^2})^2}+[y\sqrt{1+z^2}+z\sqrt{1+y^2}]\sqrt{1+x^2} [/tex]

So it seems to me that this isn't going to end any better than when I didn't use hyp. trig, Hence why I think I'm missing the critical point.
 
Last edited:
  • #55
You've already typed too much. Stop! Look at your second line. The first argument to the outer sinh is arcsinh(sinh('something')). Just replace that with 'something'. You are overshooting!
 
  • #56
Dick said:
You've already typed too much. Stop! Look at your second line. The first argument to the outer sinh is arcsinh(sinh('something')). Just replace that with 'something'. You are overshooting!

whoops! lol didnt see you down here, was just trying to fix my tex :) *looking at second line*

Umm maybe I don't see what you mean, I can't simplify directly when there is a sum involved, right?
 
Last edited:
  • #57
ArcanaNoir said:
B:
[tex] x\ast (y\ast z) = \sinh (\sinh ^{-1} (x)+\sinh ^{-1}(y\ast z)) \\
=\sinh (\sinh ^{-1}(x)+\sinh ^{-1} [\sinh (\sinh ^{-1}(y) + \sinh ^{-1}(z))]) \\
=\sinh [\sinh ^{-1} (x) + \sinh ^{-1} [\sinh (\sinh ^{-1}(y))\cosh (\sinh ^{-1} (z))+\cosh (\sinh ^{-1} (y))\sinh (\sinh ^{-1} (z))]] [/tex]

Le's go into a different direction:

B:
[tex] x\ast (y\ast z) = \sinh (\sinh ^{-1} (x)+\sinh ^{-1}(y\ast z)) \\
=\sinh (\sinh ^{-1}(x)+\sinh ^{-1} [\sinh (\sinh ^{-1}(y) + \sinh ^{-1}(z))]) \\
=\sinh (\sinh ^{-1}(x)+ \sinh ^{-1}(y) + \sinh ^{-1}(z)) [/tex]

EDIT: Ah. too late.
 
  • #58
ArcanaNoir said:
whoops! lol didnt see you down here, was just trying to fix my tex :) *looking at second line*

Umm maybe I don't see what you mean, I can't simplify directly when there is a sum involved, right?

arcsinh(sinh( arcsinh(x)+arcsinh(y) ))=arcsinh(x)+arcsinh(y) is what I and ILS mean.
 
  • #59
I like Serena said:
Le's go into a different direction:

B:
[tex] x\ast (y\ast z) = \sinh (\sinh ^{-1} (x)+\sinh ^{-1}(y\ast z)) \\
=\sinh (\sinh ^{-1}(x)+\sinh ^{-1} [\sinh (\sinh ^{-1}(y) + \sinh ^{-1}(z))]) \\
=\sinh (\sinh ^{-1}(x)+ \sinh ^{-1}(y) + \sinh ^{-1}(z)) [/tex]

EDIT: Ah. too late.

how did you get from your second line to your third line?
 
  • #60
Dick said:
arcsinh(sinh( arcsinh(x)+arcsinh(y) ))=arcsinh(x)+arcsinh(y) is what I and ILS mean.

What identity are you using?
 
  • #61
ArcanaNoir said:
What identity are you using?

The most basic one. sinh(arcsinh(A))=A. sinh and arcsinh are inverse functions. It doesn't matter that A is a sum.
 
  • #62
Dick said:
The most basic one. sinh(arcsinh(A))=A. sinh and arcsinh are inverse functions. It doesn't matter that A is a sum.

but is it true that sinh(a+b)= sinh(a)+sinh(b)?
 
  • #63
ArcanaNoir said:
but is it true that sinh(a+b)= sinh(a)+sinh(b)?

Definitely not! That's not what I'm doing. Look at it again.
 
  • #64
Dick said:
The most basic one. sinh(arcsinh(A))=A. sinh and arcsinh are inverse functions. It doesn't matter that A is a sum.

Dick said:
arcsinh(sinh( arcsinh(x)+arcsinh(y) ))=arcsinh(x)+arcsinh(y) is what I and ILS mean.
Honestly I don't see how you are getting there using only sinh(arcsinh(A))=A. Surely you are using an additional identity.
 
  • #65
ArcanaNoir said:
Honestly I don't see how you are getting there using only sinh(arcsinh(A))=A. Surely you are using an additional identity.

A=arcsinh(x)+arcsinh(y). This might be a little hard to see because it's really simple and you are expecting something complicated.
 
  • #66
Dick said:
A=arcsinh(x)+arcsinh(y). This might be a little hard to see because it's really simple and you are expecting something complicated.

ohhhh. thank you :) I was trying to work from the inside out.
 
  • #67
Holy crap, here it goes! Maybe I can be done with this problem now!

A:
(x*y)*z = sinh[arcsinh(x)+arcsinh(y)]*z
=sinh[arcsinh(sinh[arcsinh(x)+arcsinh(y)])+arcsinh(z)]
=sinh[arcsinh(x)+arcsinh(y)+arcsinh(z)]

B:
x*(y*z) = sinh(arcsinh(x)+arcsinh[y*z])
=sinh(arcsinh(x)+arcsinh[sinh(arcsinh(y)+arcsinh(z))])
=sinh(arcsinh(x)+arcsinh(y)+arcsinh(z))

Yeah?
 
  • #68
ArcanaNoir said:
Okay, you guys have been wonderful, especially Dick and Micro. Although I'm beginning to suspect Micro is a genius, in which case he sneezes and answers pop out of him, so it's not like he has to try really hard. :P j/k I appreciate your tireless efforts Micro! (not kidding about thinking you're a genius...)
Anyway I'm trying to use Micro's hint but I feel like I'm slipping past the part where I'm supposed to rearrange the expressions to show they are equivalent. I will show my simplification for the expressions, maybe someone can point out where I was supposed to do something trig-y.

I have verified that [itex] \cosh (\sinh ^{-1}(x))=\sqrt{1+x^2} [/itex] and that [itex] f(x,y)=\sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y)) [/itex]

A:
[tex] (x\ast y)\ast z = \sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y))\ast z \\[/tex] [tex]
= \sinh (\sinh ^{-1} [\sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y))]+\sinh ^{-1} (z)) \\
=\sinh [\sinh ^{-1} [\sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y))]]\cosh (\sinh ^{-1} (z))+\\
\cosh [\sinh ^{-1} [\sinh (\sinh ^{-1}(x)+\sinh ^{-1}(y))]]\sinh (\sinh ^{-1} (z)) \\
=\sinh [\sinh ^{-1} [\sinh (\sinh ^{-1} (x))\cosh (\sinh ^{-1} (y))+\cosh (\sinh ^{-1} (x))\sinh (\sinh ^{-1} (y))]]\cdot \sqrt{1+z^2} +\\
\cosh [\sinh ^{-1} [ \sinh (\sinh ^{-1} (x))\cosh (\sinh ^{-1}(y))+\cosh (\sinh ^{-1} (x))\sinh (\sinh ^{-1} (y))]]\cdot z \\
\sinh [\sinh ^{-1} [x\sqrt{1+y^2}+y\sqrt{1+x^2}]]\sqrt{1+z^2}+\cosh [\sinh ^{-1} [x\sqrt{1+y^2}+y\sqrt{1+x^2}]]z [/tex]

B:
[tex] x\ast (y\ast z) = \sinh (\sinh ^{-1} (x)+\sinh ^{-1}(y\ast z)) \\
=\sinh (\sinh ^{-1}(x)+\sinh ^{-1} [\sinh (\sinh ^{-1}(y) + \sinh ^{-1}(z))]) \\
=\sinh [\sinh ^{-1} (x) + \sinh ^{-1} [\sinh (\sinh ^{-1}(y))\cosh (\sinh ^{-1} (z))+\\
\cosh (\sinh ^{-1} (y))\sinh (\sinh ^{-1} (z))]] \\
=\sinh [ \sinh ^{-1}(x)+\sinh ^{-1} [y\sqrt{1+z^2}+z\sqrt{1+y^2}]] \\
=\sinh (\sinh ^{-1} (x))\cosh (\sinh ^{-1} [y\sqrt{1+z^2}+z\sqrt{1+y^2}])+\\
\cosh (\sinh ^{-1} (x))\sinh (\sinh ^{-1}[y\sqrt{1+z^2}+z\sqrt{1+y^2}]) \\
=x\sqrt{1+(y\sqrt{1+z^2}+z\sqrt{1+y^2})^2}+[y\sqrt{1+z^2}+z\sqrt{1+y^2}]\sqrt{1+x^2} [/tex]

So it seems to me that this isn't going to end any better than when I didn't use hyp. trig, Hence why I think I'm missing the critical point.

No! From ##f(u,v) = g\left( g^{-1}(u) + g^{-1}(v) \right)##, where ##g(.) = \sinh(.)##,
it follows that
[tex] f(f(x,y),z) = g\left( g^{-1}(f(x,y)) + g^{-1}(z)\right) = g \left( g^{-1}(x) + g^{-1}(y) + g^{-1}(z) \right) .[/tex]
 
  • #69
Ray Vickson said:
No! From ##f(u,v) = g\left( g^{-1}(u) + g^{-1}(v) \right)##, where ##g(.) = \sinh(.)##,
it follows that
[tex] f(f(x,y),z) = g\left( g^{-1}(f(x,y)) + g^{-1}(z)\right) = g \left( g^{-1}(x) + g^{-1}(y) + g^{-1}(z) \right) .[/tex]

Yeah... I got that finally.
 
  • #70
Another huge thank you to everyone who helped with this problem, especially Ray, Dick, and Micro, who invested quite some time in helping me. I really really appreciate it, I couldn't have done it without all the outstanding help!
 
Back
Top